F 分布(F-distribution)是一種常見的概率分布,在方差分析的統計推斷中占有重要位置.它的定義是這樣的:設從某正態分布總體N(μ, σ2)中隨機抽取樣本容量為n1和n2的兩個獨立樣本,其樣本方差分別則定義這兩個方差的比值為F,即:

在具體的教學過程中,如果對上述內容,尤其是對F 分布曲線的特征簡單地進行敘述和羅列,一方面難以激發學生的學習興趣,另外一方面也不利于他們對F 分布的深入理解.近年來,筆者與同事們在教學過程中,利用Excel 軟件中的函數公式、圖表繪制以及VBA 編程功能(Visual Basic for Application),對生物統計學當中的一些內容進行模擬或構建,取得了不錯的教學效果[2-5].本文繼續以Excel 2010 為例,采用2 種方法對F 分布曲線分別進行構建和模擬,以供參考.
Excel 2010 中的F.DIST(F, df1, df2, FALSE)函數可以用來計算某F 值以及df1和df2條件下的概率密度.利用該函數對F 分布曲線進行構建時,其數據輸入格式如圖1 所示.在A 列中自A4 單元格以下輸入≥0的數字以表示F 值,本文中以0.1 為間隔,即0.0、0.1、0.2、…;在第1 行中自B 列開始輸入正整數以表示df1,本文中以2、3、10、…為例;在第2 行中自B 列開始輸入正整數以表示df2,本文中以2、10、20、…為例;在B4 單元格中輸入“=F.DIST($A4,B$1,B$2,FALSE)”,并將此函數公式向右、向下復制填充,一張特定F值以及df1和df2條件下的概率密度表格便生成了;然后對所得概率密度與A 列的F 值進行繪圖,便可得到相應的F 分布曲線(見圖2).該文件生成后,只需要任意修改表格第1、2 行中的自由度取值,便可以在課堂上動態地展示F 分布曲線隨自由度df1和df2變化而變化的規律特點, 從而達到激發學生學習興趣、提高教學效果之目的.

圖1 Excel 函數輸入示例

圖2 不同自由度的F 分布曲線
Excel 中的NormInv(Rnd(),0,1)函數可以生成一系列服從標準正態分布N(0,1)的隨機數字,正好可以用來模擬F 分布的抽樣過程.
第1 步:打開Excel 2010,新建一個電子表格,在當前工作表的A1 至A4 單元格中分別輸入“自由度df1=”“自由度df2=”“抽樣次數=”以及“組距=”;在B1 至B4 單元格中輸入合適的數字以表示相應的自由度、抽樣次數和組距(本文分別以10、20、10 000、0.2 為例);在C1 至I1 單元格中分別輸入“F 值”“組限”以及“頻率”等(見圖3).
第2 步:按Alt+F11 進入Visual Basic 編寫界面,雙擊左側的Sheet1 圖標,進入代碼編寫界面,把本文附錄中的VBA 代碼拷貝進去(見圖4).然后關閉代碼編寫界面進入工作表界面,將文件另存為啟用宏的文件類型(*.xlsm)即可.

圖3 模擬步驟第1 步的輸入結果

圖4 Excel 中VBA 代碼的輸入
第3 步:為宏運行設置快捷鍵.按Alt+F8 鍵或點擊菜單欄的“視圖→宏→查看宏”后選定“Sheet1.sql”,再點擊“選項(O)…”,在快捷鍵對話框里填寫字母“q”后確定即可.
當按下快捷鍵Ctrl+q 時,Excel 便開始執行模擬程序.首先是在C 列和D 列自第2 行往下分別生成n1(= df1+1)和n2(=df2+1)個服從標準正態總體N(0, 1)的隨機變量.本文中以df1=10、df2=20 為例,故在C2 至C12 單元格中生成11 個隨機變量表示n1、在D2 至D22 中生成21 個隨機變量表示n2.然后利用VAR 函數計算n1的方差和n2的方差分別存放在單元格E2 和F2 當中;再將便可得到一個F值,存放在G2 單元格中.若將上述過程重復10 000 次(B3 單元格中的數字,本文中以10 000 為例),便可生成10 000 個和F 值,被相應地依次存放在E、F、G 這3 列的第2 行至第10 001 行當中.
在VBA 代碼中,利用ROUNDUP(MAX())和ROUNDDOWN(MIN())這兩個復合函數對G 列中的F 值的最大值與最小值分別向上向下取整數,以統計F 值的分布范圍,并據此設置組限,數據存放在H 列中;再利用FREQUENCY 函數進行頻次統計,所得的各組的頻率存放在I 列中;最后對I 列中的結果繪制柱狀圖,其結果如圖5 所示.任意修改B1、B2 單元格中的自由度取值,該柱狀圖便會相應地發生改變,從而可以動態地展示F 分布隨df1和df2變化而變化的基本規律.從圖5 中可以看出,F 值的頻率分布變化趨勢與圖2 中的概率密度曲線的變化趨勢是基本一致的.

圖5 不同自由度的F 頻率分布
頻率與概率之間的關系,實際上就是樣本統計數與總體參數的關系.上述的第1 種方法,即利用F.DIST 函數對F 分布曲線進行構建,恰恰就是對F 分布總體的描述.該方法的優點是分布曲線圓滑美觀,運算速度快,不影響正常的教學節奏,便于課堂上展示;其不足之處在于未能體現抽樣過程,也就不便于學生深刻理解F 分布的內涵.利用VBA 編程對F 分布進行模擬則可以很好地彌補這一不足之處.在VBA 模擬中,學生可以根據運算程序去梳理F 分布的由來.通過任意修改模擬參數,可以查看不同自由度、不同抽樣次數以及不同組距下的F 頻率分布,這種交互式體驗必定有助于加深學生對該分布的理解.理論上,當圖3 中B3 單元格中的抽樣次數無限大、B4 單元格中的組距無限接近于0 時,圖5 就與圖2 相一致.在實際應用時,一方面Excel 無法滿足抽樣次數無限大的要求;另一方面,抽樣次數過大也會使得運算過程耗時過長.VBA 代碼中,最大抽樣次數設置為65 535,已然可以滿足模擬的基本要求,取得很好的模擬效果.所以,建議在課堂上采用第1 種方法輔助教學,將第2 種方法留給學生課下自行模擬,這種課上課下相結合的教學方式,必能激發學生的學習興趣,提高教學效果.

