用python和Excel進行列聯表分析(卡方檢驗)


用python和Excel進行列聯表分析

卡方檢驗回顧(獨立性檢驗)

行(\(r_i\))列(\(c_j\)) \(j=1\) \(j=2\) \(\cdots\) 合計
\(i=1\) \(f_{11}\) \(f_{12}\) \(r_1\)
\(i=2\) \(f_{21}\) \(f_{22}\) \(r_2\)
\(\vdots\) \(\vdots\) \(\vdots\) \(\vdots\)
合計 \(c_1\) \(c_2\) \(\cdots\) \(n\)
  1. 建立原假設和備擇假設

    \[H_0:\text{兩變量獨立 }vs\text{ }H_1:\text{兩變量不獨立 } \]

  2. 計算自由度和理論頻數

    自由度:\((r-1)*(c-1)\),其中\(r,c\)分別是行數和列數

    我們將實際頻數記作\(f_{ij}\),期望(理論)頻數記作\(e_{ij}\),且\(e_{ij}=\frac{r_i*c_j}{n}\)

  3. 計算卡方統計量

    \[\chi^{2}=\sum\limits_{i=1}^{r} \sum\limits_{j=1}^{c} \frac{\left(f_{i j}-\mathrm{e}_{i j}\right)^{2}}{\mathrm{e}_{i j}} \sim \chi^{2}(d f) \]

    實際觀察次數與理論次數之差的平方再除以理論次數得到的統計量近似服從卡方分布

  4. 查χ2方分布臨界值表,確定接受域

    \[\chi_{1-\frac{\alpha}{2}}^{2}(\mathrm{df})<\chi^{2}<\chi_{\frac{\alpha}{2}}^{2}(\mathrm{df}) \]

數據示例

真實頻數 總計
未流失 29699 8954 38653
流失 9660 2762 12422
總計 39359 11716 51075

Excel操作

計算期望頻數

期望頻數 總計
未流失 29786.46 9572.54 39359
流失 8866.54 2849.46 11716
總計 38653 12422 51075

以及真實頻數和期望頻數的差值

0.257 0.799
0.863 2.684
  • p值:excel用=CHISQ.TEST(真實頻數,期望頻數),wps用=CHITEST(真實頻數,期望頻數)來計算。
  • 卡方統計量:用=SUM()合計差值區域即可
  • 自由度:如前文所述
  • 1-置信水平:一般選0.1,0.05,0.01
  • 接受域上下界:excel用=CHISQ.INV.RT(置信水平/2,自由度),wps用=CHISQ.INV(置信水平/2,自由度)

所給數據計算結果如下:

p值 0.031916
卡方統計量 4.603016363
自由度 1
\(\alpha\) 0.01
上界 3.92704E-05
下界 6.634896601

Python代碼解決方案

使用scipy.stats.chi2_contingency來進行卡方檢驗。

import numpy as np
from scipy.stats import chi2_contingency
#性別
d = np.array([[29699,9660], [8954,2762]])
chi2_contingency(d, correction = False)
#默認correction = True,這里是為了和excel計算結果一致

關於correction參數,如果為True,且自由度為1,則應用Yates校正以保持連續性。 校正的效果是將每個觀察值向相應的期望值調整0.5。

Yates correction資料點擊此處,總之它會使得卡方統計量更接近卡方分布。

輸出結果如下

(4.60301636324016,
 0.03191575584773069,
 1,
 array([[29786.45965737,  8866.54034263],
        [ 9572.54034263,  2849.45965737]]))

輸出結果分別為

  • 卡方統計量
  • p值
  • 自由度
  • 期望頻數

這題p值約為0.032,也就是說當顯著性水平\(\alpha\)大於0.032時我們會拒絕原假設,當\(\alpha<0.032\)時我們會接受原假設。如果選擇\(\alpha=0.05\),那么拒絕原假設,認為性別與流失是不獨立的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM