做了一份問卷,200 位客人,分成三個年齡層,問他們比較喜歡奶茶還是果茶。交叉表出來,20 多歲偏果茶、30 多歲偏奶茶,看起來有關係,但到底是真的有關,還是剛好這 200 人抽出來長這樣?今天來看專門回答這個問題的卡方檢定:CHISQ.TEST,以及它背後的 CHISQ.DIST、CHISQ.INV 一整組。
坦白說,我工作上絕大多數時候只用 CHISQ.TEST,其他函式是想弄清楚它怎麼算的時候才翻出來。這篇的重點也是這個:先用 CHISQ.TEST 得到答案,再用其他函式拆開來看。
範例資料
A 欄是年齡層,B、C 欄是各年齡層選奶茶與果茶的人數(觀察值):
| 年齡層 | 奶茶 | 果茶 |
|---|---|---|
| 20 多歲 | 22 | 38 |
| 30 多歲 | 36 | 24 |
| 40 歲以上 | 42 | 38 |
貼到 A1:C4。卡方檢定的邏輯是:如果年齡和口味完全沒關係,每格「應該」有多少人?這叫預期值,算法是 該列總數 × 該欄總數 ÷ 全部人數。E2 這樣寫,往右填到 F2、再往下填到 F4:
E2:預期值(E2:F4 都用這條,往右往下填)
=SUM($B2:$C2)*SUM(B$2:B$4)/SUM($B$2:$C$4)奶茶總共 100 人、果茶 100 人,各年齡層人數是 60、60、80,所以預期值是:
| 年齡層 | 預期奶茶 | 預期果茶 |
|---|---|---|
| 20 多歲 | 30 | 30 |
| 30 多歲 | 30 | 30 |
| 40 歲以上 | 40 | 40 |
然後把每一格的差距平方,除以預期值,加起來,就是卡方統計量。J2 這樣寫:
J2:卡方統計量
=SUMPRODUCT((B2:C4-E2:F4)^2/E2:F4)手算:(22−30)²÷30 = 2.1333、(38−30)²÷30 = 2.1333、(36−30)²÷30 = 1.2、(24−30)²÷30 = 1.2、(42−40)²÷40 = 0.1、(38−40)²÷40 = 0.1,加起來 6.8667。自由度是(列數 − 1)×(欄數 − 1)= 2 × 1 = 2,放在 J3:
J3:自由度
=(ROWS(B2:C4)-1)*(COLUMNS(B2:C4)-1)下面所有函式都是在處理這個 6.8667 和自由度 2。
怎麼選
| 想做的事 | 用這個 | 備註 |
|---|---|---|
| 直接比觀察與預期,要 p 值 | CHISQ.TEST | 不用先算統計量 |
| 已有卡方值,要 p 值 | CHISQ.DIST.RT | 檢定看右尾 |
| 要左尾或畫曲線 | CHISQ.DIST | 第三個參數選 TRUE 或 FALSE |
| 給顯著水準,找門檻 | CHISQ.INV.RT | 卡方值超過就顯著 |
| 給左尾機率,反推 | CHISQ.INV | 比較少用 |
舊名 CHITEST、CHIDIST、CHIINV 各有一節。
CHISQ.TEST
比較觀察值與預期值,直接回傳 p 值。
語法:
兩個範圍的大小要一樣。預期值要自己算好放在另一個範圍,函式不會幫你算。
年齡層和口味偏好有沒有關係
=CHISQ.TEST(B2:C4, E2:F4)結果是 0.0323。p 值比常用的門檻 0.05 小,所以在 5% 的標準下,年齡層和口味偏好看起來不是毫無關係,這 200 人的差異不太像單純的巧合。但 0.0323 也沒有小到很有把握,樣本再多一些會比較穩。
要注意兩點:
- 觀察值要是次數(人數),不能是百分比。
- 預期值太小的時候不準,一般的經驗是每格預期值至少要 5 左右。這份資料最小是 30,沒問題。
這個檢定只說「有關」,不說「怎麼有關」。要知道是哪個年齡層貢獻最大,看每格 (觀察 − 預期)² ÷ 預期:20 多歲兩格各 2.1333、30 多歲各 1.2、40 歲以上各 0.1,所以主要的差異來自 20 多歲和 30 多歲,40 歲以上跟預期幾乎一樣。
CHITEST
CHISQ.TEST 的舊名,參數一樣。
語法:
舊名寫法
=CHITEST(B2:C4, E2:F4)結果同樣是 0.0323。
只有一列或一欄資料的時候,也可以用這個函式做「適合度」檢定:例如一週七天的來客數是不是平均分布。把 7 個觀察值放一欄、7 個預期值(總數 ÷ 7)放另一欄就能用。這時自由度是 n − 1,也就是 7 − 1 = 6,和 Excel 的算法一致;想對照的話,可以用 CHISQ.DIST.RT(統計量, 6) 算一次,結果會和 CHISQ.TEST 相同。
CHISQ.DIST.RT
卡方分布的右尾機率:卡方值大於 x 的面積。檢定看的就是這一邊。
語法:
用統計量與自由度算 p 值
=CHISQ.DIST.RT(J2, J3)結果是 0.0323,跟 CHISQ.TEST 一樣。這就是 CHISQ.TEST 在做的事:先算統計量,再查右尾。
為什麼是右尾?卡方值是差距平方加總,永遠不會是負的,越大代表觀察與預期差越多,所以「差距這麼大算不算稀奇」只看右邊。
CHIDIST
CHISQ.DIST.RT 的舊名,參數一樣。
語法:
舊名寫法
=CHIDIST(J2, J3)結果是 0.0323。
CHISQ.DIST
左尾累積機率,或曲線的高度。
語法:
- 累積:TRUE 是卡方值小於等於 x 的機率,FALSE 是機率密度。
左尾累積機率
=CHISQ.DIST(J2, J3, TRUE)結果是 0.9677,加上右尾 0.0323 剛好是 1。
密度的例子:自由度 4、x = 3, 是 0.1673,只是曲線上的高度,不是機率; 是 0.4422。
CHISQ.INV.RT
給右尾機率,反推卡方臨界值。
語法:
顯著水準 5%、自由度 2 的門檻
=CHISQ.INV.RT(0.05, 2)結果是 5.9915,跟課本卡方表自由度 2、0.05 那格一樣。意思是:卡方值超過 5.9915,p 值就會小於 0.05。這份資料的 6.8667 超過了,結論和 p = 0.0323 一致。
要更嚴格的 1% 標準, 是 9.2103,6.8667 沒超過,所以在 1% 的標準下不顯著。同一份資料,用的標準不同,結論就不一樣,這也是為什麼我習慣把 p 值直接寫出來,不只寫「顯著」兩個字。
CHIINV
CHISQ.INV.RT 的舊名,參數一樣。
語法:
舊名寫法
=CHIINV(0.05, 2)結果是 5.9915。
CHISQ.INV
給左尾機率,反推卡方值。
語法:
左尾 95% 對應的卡方值
=CHISQ.INV(0.95, 2)結果是 5.9915,因為左尾 95% 和右尾 5% 是同一個位置,所以 CHISQ.INV(0.95, 2) 和 CHISQ.INV.RT(0.05, 2) 的答案相同。
這個函式用的機會比較少。需要的時候記得:INV.RT 的機率是「超過的面積」,INV 的機率是「不到的面積」,兩個機率加起來是 1。
回到問卷
p 值小只代表「應該不是巧合」,不代表年齡層「造成」口味不同,也沒說差距有多大。這份問卷的下一步我會做的是回去看那幾格的差距,想想 20 多歲偏果茶有沒有別的解釋(例如那批人多半在假日來)。要檢定的是兩組的離散程度,換成 F 檢定;離散的計次機率在 二項與卜瓦松。
接下來可以
相關文章
查看所有文章留言討論
共 0 則留言
