卡方校驗(yàn)
卡方檢驗(yàn)屬于非參數(shù)檢驗(yàn)的范疇吆玖,用于統(tǒng)計(jì)樣本的實(shí)際觀測值與理論推斷值之間的偏離程度咖气,實(shí)際觀測值與理論推斷值之間的偏離程度就決定卡方值的大小见秽。如果卡方值越大锣夹,二者偏差程度越大;反之豌习,二者偏差越写婊选;若兩個(gè)值完全相等時(shí)肥隆,卡方值就為0既荚,表明理論值完全符合。
特別注意:
- 卡方檢驗(yàn)僅針對(duì)分類變量栋艳。
- 用于計(jì)算列聯(lián)表的觀察是獨(dú)立的恰聘。
- 列聯(lián)表的每個(gè)單元格中至少有25個(gè)實(shí)例。
- 檢驗(yàn)原假設(shè):觀察頻數(shù)與期望頻數(shù)無顯著差異
用Python實(shí)現(xiàn)卡方校驗(yàn)
- 借助第三方庫: scipy
使用前需安裝scipy(Anaconda 已默認(rèn)安裝):pip install numpy pip install scipy
-
卡方校驗(yàn)的實(shí)現(xiàn)需要借助scipy中的chi2_contingency模塊
使用需前導(dǎo)入:
Python命令:chi2_contingency(data)from scipy.stats import chi2_contingency
舉例:三種藥物的治療數(shù)據(jù)
image.png
Python代碼實(shí)現(xiàn):
import numpy as np
from scipy.stats import chi2_contingency
data = np.array([[38, 49, 25], [150, 98, 57]])
kf = chi2_contingency(data)
print('chisq-statistic=%.4f, p-value=%.4f, df=%i expected_frep=%s'%kf)
輸出結(jié)果:
chisq-statistic=7.9136, p-value=0.0191, df=2 expected_frep=[[ 50.4940048 39.48201439 22.02398082]
[137.5059952 107.51798561 59.97601918]]
第一個(gè)值為卡方值,第二個(gè)值為P值晴叨,第三個(gè)值為自由度凿宾,第四個(gè)為與原數(shù)據(jù)數(shù)組同維度的對(duì)應(yīng)理論值