python 卡方检验批量筛选_用python和Excel进行列联表分析(卡方检验)
用python和Excel進(jìn)行列聯(lián)表分析
卡方檢驗(yàn)回顧(獨(dú)立性檢驗(yàn))
行(\(r_i\))列(\(c_j\))
\(j=1\)
\(j=2\)
\(\cdots\)
合計(jì)
\(i=1\)
\(f_{11}\)
\(f_{12}\)
\(r_1\)
\(i=2\)
\(f_{21}\)
\(f_{22}\)
\(r_2\)
\(\vdots\)
\(\vdots\)
\(\vdots\)
\(\vdots\)
合計(jì)
\(c_1\)
\(c_2\)
\(\cdots\)
\(n\)
建立原假設(shè)和備擇假設(shè)
\[H_0:\text{兩變量獨(dú)立 }vs\text{ }H_1:\text{兩變量不獨(dú)立 }
\]
計(jì)算自由度和理論頻數(shù)
自由度:\((r-1)*(c-1)\),其中\(zhòng)(r,c\)分別是行數(shù)和列數(shù)
我們將實(shí)際頻數(shù)記作\(f_{ij}\),期望(理論)頻數(shù)記作\(e_{ij}\),且\(e_{ij}=\frac{r_i*c_j}{n}\)
計(jì)算卡方統(tǒng)計(jì)量
\[\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)
\]
實(shí)際觀察次數(shù)與理論次數(shù)之差的平方再除以理論次數(shù)得到的統(tǒng)計(jì)量近似服從卡方分布
查χ2方分布臨界值表,確定接受域
\[\chi_{1-\frac{\alpha}{2}}^{2}(\mathrm{df})<\chi^{2}<\chi_{\frac{\alpha}{2}}^{2}(\mathrm{df})
\]
數(shù)據(jù)示例
真實(shí)頻數(shù)
男
女
總計(jì)
未流失
29699
8954
38653
流失
9660
2762
12422
總計(jì)
39359
11716
51075
Excel操作
計(jì)算期望頻數(shù)
期望頻數(shù)
男
女
總計(jì)
未流失
29786.46
9572.54
39359
流失
8866.54
2849.46
11716
總計(jì)
38653
12422
51075
以及真實(shí)頻數(shù)和期望頻數(shù)的差值
0.257
0.799
0.863
2.684
p值:excel用=CHISQ.TEST(真實(shí)頻數(shù),期望頻數(shù)),wps用=CHITEST(真實(shí)頻數(shù),期望頻數(shù))來(lái)計(jì)算。
卡方統(tǒng)計(jì)量:用=SUM()合計(jì)差值區(qū)域即可
自由度:如前文所述
1-置信水平:一般選0.1,0.05,0.01
接受域上下界:excel用=CHISQ.INV.RT(置信水平/2,自由度),wps用=CHISQ.INV(置信水平/2,自由度)
所給數(shù)據(jù)計(jì)算結(jié)果如下:
p值
0.031916
卡方統(tǒng)計(jì)量
4.603016363
自由度
1
\(\alpha\)
0.01
上界
3.92704E-05
下界
6.634896601
Python代碼解決方案
使用scipy.stats.chi2_contingency來(lái)進(jìn)行卡方檢驗(yàn)。
import numpy as np
from scipy.stats import chi2_contingency
#性別
d = np.array([[29699,9660], [8954,2762]])
chi2_contingency(d, correction = False)
#默認(rèn)correction = True,這里是為了和excel計(jì)算結(jié)果一致
關(guān)于correction參數(shù),如果為T(mén)rue,且自由度為1,則應(yīng)用Yates校正以保持連續(xù)性。 校正的效果是將每個(gè)觀察值向相應(yīng)的期望值調(diào)整0.5。
Yates correction資料點(diǎn)擊此處,總之它會(huì)使得卡方統(tǒng)計(jì)量更接近卡方分布。
輸出結(jié)果如下
(4.60301636324016,
0.03191575584773069,
1,
array([[29786.45965737, 8866.54034263],
[ 9572.54034263, 2849.45965737]]))
輸出結(jié)果分別為
卡方統(tǒng)計(jì)量
p值
自由度
期望頻數(shù)
這題p值約為0.032,也就是說(shuō)當(dāng)顯著性水平\(\alpha\)大于0.032時(shí)我們會(huì)拒絕原假設(shè),當(dāng)\(\alpha<0.032\)時(shí)我們會(huì)接受原假設(shè)。如果選擇\(\alpha=0.05\),那么拒絕原假設(shè),認(rèn)為性別與流失是不獨(dú)立的。
總結(jié)
以上是生活随笔為你收集整理的python 卡方检验批量筛选_用python和Excel进行列联表分析(卡方检验)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 脉冲时间宽度c语言,基于AT89C52脉
- 下一篇: 手机充电器电路图应用讲解