轉載自:
https://blog.csdn.net/qq_15111861/article/details/80723754
http://blog.sina.com.cn/s/articlelist_1884594582_0_1.html
Matlab實現
Matlab中有兩個chi-square test相關函數:
crosstab http://nl.mathworks.com/help/stats/crosstab.html
chi2gof http://nl.mathworks.com/help/search.html?qdoc=chi2gof&submitsearch=
使用crosstab 函數時,input應爲原始數據而非列聯表數據,具體解釋請參考: http://www.theanalysisfactor.com/chi-square-test-proportions/
- 什麼是卡方檢驗
卡方檢驗是一種用途很廣的計數資料的假設檢驗方法。它屬於非參數檢驗的範疇,主要是比較兩個及兩個以上樣本率( 構成比)以及兩個分類變量的關聯性分析。其根本思想就是在於比較理論頻數和實際頻數的吻合程度或擬合優度問題。
它在分類資料統計推斷中的應用包括:兩個率或兩個構成比比較的卡方檢驗;多個率或多個構成比比較的卡方檢驗以及分類資料的相關分析等。
舉例一:以下爲一個典型的四格卡方檢驗,我們想知道喝牛奶對感冒發病率有沒有影響:
感冒人數 | 未感冒人數 | 合計 | 感冒率 | |
喝牛奶組 | 43 | 96 | 139 | 30.94% |
不喝牛奶組 | 28 | 84 | 112 | 25.00% |
合計 | 71 | 180 | 251 | 28.29% |
通過簡單的統計我們得出喝牛奶組和不喝牛奶組的感冒率爲30.94%和25.00%,兩者的差別可能是抽樣誤差導致,也有可能是牛奶對感冒率真的有影響。
爲了確定真實原因,我們先假設喝牛奶對感冒發病率是沒有影響的,即喝牛奶喝感冒時獨立無關的,所以我們可以得出感冒的發病率實際是(43+28)/(43+28+96+84)= 28.29%
所以,理論的四格表應該如下表所示:
感冒人數 | 未感冒人數 | 合計 | |
喝牛奶組 | =139*0.2829 | =139*(1-0.2829) | 139 |
不喝牛奶組 | =112*0.2829 | =112*(1-0.2829) | 112 |
感冒人數 | 未感冒人數 | 合計 | |
喝牛奶組 | 39.3231 | 99.6769 | 139 |
不喝牛奶組 | 31.6848 | 80.3152 | 112 |
合計 | 71 | 180 | 251 |
如果喝牛奶喝感冒真的是獨立無關的,那麼四格表裏的理論值和實際值差別應該會很小。
- 卡方檢驗的計算公式爲:
其中,A爲實際值,T爲理論值。
x2用於衡量實際值與理論值的差異程度(也就是卡方檢驗的核心思想),包含了以下兩個信息:
1. 實際值與理論值偏差的絕對大小(由於平方的存在,差異是被放大的)
2. 差異程度與理論值的相對大小
根據卡方檢驗公式我們可以得出例1的卡方值爲:
卡方 = (43 - 39.3231)平方 / 39.3231 + (28 - 31.6848)平方 / 31.6848 + (96 - 99.6769)平方 / 99.6769 + (84 - 80.3152)平方 / 80.3152 = 1.077
- 卡方分佈的臨界值
上一步我們得到了卡方的值,但是如何通過卡方的值來判斷喝牛奶和感冒是否真的是獨立無關的?也就是說,怎麼知道無關性假設是否可靠?
答案是,通過查詢卡方分佈的臨界值表。
這裏需要用到一個自由度的概念,自由度等於V = (行數 - 1) * (列數 - 1),對四格表,自由度V = 1。
對V = 1,喝牛奶和感冒95%概率不相關的卡方分佈的臨界概率是:3.84。即如果卡方大於3.84,則認爲喝牛奶和感冒有95%的概率不相關。
顯然1.077<3.84,沒有達到卡方分佈的臨界值,所以喝牛奶和感冒獨立不相關的假設不成立。
- 卡方分佈表
上面通過一個小例子讓大家對卡方檢驗有一個簡單的認識,下面是卡方檢驗的標準做法:
舉例二:四方卡檢驗的標準做法
我們想知道不吃晚飯對體重下降有沒有影響:
體重下降 | 體重未下降 | 合計 | 體重下降率 | |
吃晚飯組 | 123 | 467 | 590 | 20.85% |
不吃晚飯組 | 45 | 106 | 151 | 29.80% |
合計 | 168 | 573 | 741 | 22.67% |
1. 建立假設檢驗:
H0:r1=r2,不吃晚飯對體重下降沒有影響,即吃不吃晚飯的體重下降率相等;
H1:r1≠r2,不吃晚飯對體重下降有顯著影響,即吃不吃晚飯的體重下降率不相等。α=0.05
2. 計算理論值
體重下降 | 體重未下降 | 合計 | |
吃晚飯組 | 133.765 | 456.234 | 590 |
不吃晚飯組 | 34.2348 | 116.765 | 151 |
合計 | 168 | 573 | 741 |
3. 計算卡方值
根據公式
計算出卡方值爲5.498
4. 查卡方表求P值
在查表之前應知本題自由度。按卡方檢驗的自由度v=(行數-1)(列數-1),則該題的自由度v=(2-1)(2-1)=1,查卡方界值表,找到3.84,而本題卡方=5.498即卡方>3.84,P<0.05,差異有顯著統計學意義,按α=0.05水準,拒絕H0,可以認爲兩組的體重下降率有明顯差別。通過實例計算,對卡方的基本公式有如下理解:若各理論數與相應實際數相差越小,卡方值越小;如兩者相同,則卡方值必爲零。
- 什麼是卡方分佈?
若n個相互獨立的隨機變量ξ₁,ξ₂,...,ξn ,均服從標準正態分佈(也稱獨立同分佈於標準正態分佈),則這n個服從標準正態分佈的隨機變量的平方和構成一新的隨機變量,其分佈規律稱爲卡方分佈(chi-square distribution)。