查嶺生,李 俊,丁建華
(淮北師范大學(xué) 生命科學(xué)學(xué)院,安徽 淮北 235000)
卡方分布(Chi-square distribution,χ2)是一種常見的概率分布,在生物統(tǒng)計(jì)學(xué)的教學(xué)中占有重要位置. 它的定義為:假設(shè)從標(biāo)準(zhǔn)正態(tài)總體中隨機(jī)抽取k個(gè)獨(dú)立變量,就會(huì)得到u1,u2,…,uk,把這k個(gè)隨機(jī)變量先平方、再求和,這個(gè)和被定義為χ2,即
每進(jìn)行一次隨機(jī)抽樣便可獲得一個(gè)χ2值,于是,所有可能的χ2值所構(gòu)成的分布被稱作χ2分布[1]. 該分布屬于連續(xù)型變量的分布,自由度df=k-1,每個(gè)不同的自由度都有一個(gè)相應(yīng)的分布曲線[1-2].χ2分布具有以下特征:其取值區(qū)間為[0,+∞);當(dāng)df=1時(shí),分布曲線以縱軸為漸近線;當(dāng)df逐漸增大時(shí),分布曲線漸趨于左右對(duì)稱;當(dāng)df≥30時(shí),χ2分布已接近于正態(tài)分布[1].
在具體的教學(xué)活動(dòng)中,如果對(duì)χ2分布曲線的特征僅僅是進(jìn)行簡(jiǎn)單的敘述,一方面難以引起學(xué)生的學(xué)習(xí)興趣、激發(fā)他們的學(xué)習(xí)熱情,另一方面也不利于他們對(duì)χ2分布內(nèi)涵的深入理解. 作為一種非常普及的辦公軟件,Excel具有強(qiáng)大的函數(shù)運(yùn)算能力,在統(tǒng)計(jì)學(xué)教學(xué)過程中得到廣泛應(yīng)用[3-6]. 人們利用Excel對(duì)抽樣分布[7]、中心極限定理[8]、大數(shù)定律[9]等內(nèi)容進(jìn)行模擬,以幫助學(xué)生對(duì)這些概念的深入理解. 近年來,筆者與同事們?cè)诮虒W(xué)過程中,利用Excel對(duì)生物統(tǒng)計(jì)學(xué)當(dāng)中的一些內(nèi)容進(jìn)行構(gòu)建或模擬,也取得不錯(cuò)的教學(xué)效果[10-14]. 本文繼續(xù)以Excel 2010為例,采用2種方法對(duì)χ2分布曲線分別進(jìn)行構(gòu)建和模擬,以供參考.
Excel 2010中的CHISQ.DIST(χ2,df,F(xiàn)ALSE)函數(shù)可以用來計(jì)算某χ2值與df條件下的概率密度. 利用該函數(shù)對(duì)χ2分布曲線進(jìn)行構(gòu)建時(shí),其數(shù)據(jù)輸入格式如圖1所示. 在A列中自A3單元格以下輸入≥0的數(shù)字以表示χ2值,本文中以0.5為間隔,即0.0、0.5、1.0、…;在第2行中自B列開始輸入正整數(shù)以表示自由度,本文中以1、3、5、…為例;在B3單元格中輸入“=CHISQ.DIST($A3,B$2,F(xiàn)ALSE)”,并將此函數(shù)公式向右、向下復(fù)制填充,一張?zhí)囟é?值與df條件下的概率密度表格便生成了;然后對(duì)所得概率密度與A列當(dāng)中的χ2值進(jìn)行繪圖,便可得到相應(yīng)的χ2分布曲線(圖2). 該文件生成后,只需要任意修改表格第2行中的自由度取值,便可以在課堂上動(dòng)態(tài)地展示χ2分布曲線隨df變化而變化的規(guī)律特點(diǎn),從而達(dá)到激發(fā)學(xué)生學(xué)習(xí)興趣、提高教學(xué)效果之目的. 需要注意的是,當(dāng)χ2=0、df=1時(shí),Excel將返回錯(cuò)誤值“#NUM!”,這是因?yàn)榇藭r(shí)曲線以縱軸為漸近線的緣故.
圖1 Excel函數(shù)輸入示例
圖2 不同自由度的χ2 分布曲線
Excel中的NormInv(Rnd(),0,1)函數(shù)可以生成一系列服從標(biāo)準(zhǔn)正態(tài)分布N(0,1)的隨機(jī)數(shù)字,正好可以用來模擬χ2分布的抽樣過程.
第1步:打開Excel 2010,新建一個(gè)電子表格,在當(dāng)前工作表Sheet1的A1至A3單元格中分別輸入“自由度df=”“抽樣次數(shù)=”“組距=”;在B1至B3單元格中分別輸入相應(yīng)的數(shù)字,本文中以自由度df=1、抽樣次數(shù)=10 000、組距=0.5為例;在C1至G1單元格匯總分別輸入“u”“u2”“χ2”“組限”以及“頻率”(圖3).
第2步:按Alt+F11進(jìn)入Visual Basic 編寫界面,雙擊左側(cè)的Sheet1圖標(biāo),進(jìn)入代碼編寫界面,把本文附錄中的VBA代碼拷貝進(jìn)去(圖4). 然后關(guān)閉代碼編寫界面進(jìn)入工作表界面,將文件另存為啟用宏的文件類型(*. xlsm)即可.
在B1 單元格中輸入具體的數(shù)字(本文中以df= 1 為例),便可觸發(fā)該模擬程序自動(dòng)運(yùn)行. 首先是在C2、C3 單元格中生成2 個(gè)服從N(0,1)的隨機(jī)變量,此步驟用來模擬從標(biāo)準(zhǔn)正態(tài)總體當(dāng)中隨機(jī)抽取k(=df+1)個(gè)獨(dú)立變量的過程;然后對(duì)這2個(gè)隨機(jī)變量求平方,其平方值相應(yīng)地存放在D2、D3單元格中;再對(duì)D2、D3單元格中的平方值進(jìn)行求和,得到一個(gè)χ2值,將其存放在E2單元格中. 若將上述抽樣過程重復(fù)10 000 次(B2 單元格中的數(shù)字),便可以得到 10 000 個(gè)χ2值,依次被存放在 E2 至 E10001 單元格中(圖3).
圖3 模擬步驟第1步的輸入結(jié)果
圖4 Excel中VBA代碼的輸入
在VBA 代碼中,采用ROUNDUP(MAX())和ROUNDDOWN(MIN())這兩個(gè)復(fù)合函數(shù)對(duì)E 列中的χ2值的最大值與最小值分別向上向下取整數(shù),以統(tǒng)計(jì)χ2值的分布范圍,并根據(jù)B3單元格中的組距大小設(shè)置組限,數(shù)據(jù)存放在F列中;再采用FREQUENCY 函數(shù)進(jìn)行頻次統(tǒng)計(jì),所得的各組的頻率存放在G列中;最后對(duì)G列中的結(jié)果繪制柱狀圖. 繪圖時(shí)可采用動(dòng)態(tài)引用函數(shù)OFFSET以達(dá)到動(dòng)態(tài)展示的效果,其具體步驟如下:
圖5 定義名稱對(duì)話框
圖6 選擇數(shù)據(jù)源對(duì)話框
通過上述操作,一幅可以隨F列、G列中數(shù)據(jù)變化而變化的動(dòng)態(tài)柱狀圖便生成了,稍加修飾,其效果如圖7所示. 任意修改B1單元格中的自由度取值,該柱狀圖便會(huì)相應(yīng)地發(fā)生改變,從而可以動(dòng)態(tài)地展示χ2分布隨自由度變化而變化的基本規(guī)律. 從圖7中可以看出,χ2值的頻率分布變化趨勢(shì)與圖2中的概率密度曲線的變化趨勢(shì)是基本一致的.
圖7 不同自由度的χ2 頻率分布
頻率與概率之間的關(guān)系,實(shí)際上就是樣本統(tǒng)計(jì)數(shù)與總體參數(shù)的關(guān)系. 根據(jù)大數(shù)定律,當(dāng)樣本容量n充分大時(shí),事件A 發(fā)生的頻率W(A)就可以代替概率P(A)[1]. 上述的第1種方法,即利用CHISQ.DIST函數(shù)對(duì)χ2分布曲線進(jìn)行構(gòu)建,恰恰就是對(duì)χ2分布總體的描述. 其優(yōu)點(diǎn)是分布曲線圓滑美觀,運(yùn)算速度快,不影響正常的教學(xué)節(jié)奏,便于課堂上展示;其不足之處在于未能體現(xiàn)抽樣過程,也就不便于學(xué)生深刻理解χ2分布的由來. 利用VBA編程對(duì)χ2分布進(jìn)行模擬則可以很好地彌補(bǔ)這一不足之處. 在VBA模擬中,學(xué)生可以根據(jù)運(yùn)算過程去梳理χ2分布的由來,從而加深對(duì)該分布的理解. 理論上,當(dāng)圖3中B2單元格中的抽樣次數(shù)無限大、B3單元格中的組距無限接近于0時(shí),圖7與圖2相一致. 在實(shí)際應(yīng)用時(shí),一方面Excel無法滿足抽樣次數(shù)無限大的要求,另一方面,抽樣次數(shù)過大也會(huì)使得運(yùn)算過程耗時(shí)過長(zhǎng). 本文的VBA代碼中,最大抽樣次數(shù)設(shè)置為65 535,已然可以基本滿足模擬的需要. 建議:在課堂上采用第1種方法輔助教學(xué),將第2種方法留給學(xué)生課下自行模擬,通過修改B1至B3單元格中的模擬參數(shù),以查看不同自由度、不同抽樣次數(shù)以及不同組距下的χ2頻率分布. 這種課上課下相結(jié)合的教學(xué)方式,必能激發(fā)學(xué)生的學(xué)習(xí)興趣,提高教學(xué)效果.
致謝:特別感謝福建江夏學(xué)院會(huì)計(jì)學(xué)院的薛捷波先生在VBA編程方面給予的熱情幫助.