卡方检验是一种用途很广的计数资料的假设检验方法。它属于非参数检验的范畴,主要是比较两个及两个以上样本率( 构成比)以及两个分类变量的关联性分析。其根本思想就是在于比较理论频数和实际频数的吻合程度或拟合优度问题。

卡方检验的基本思想:

卡方检验是以python 卡方检验做相关性分析案例 python进行卡方检验_ci分布为基础的一种常用假设检验方法,它的基本假设H0是:观察频数与期望频数没有差别。

该检验的基本思想是:首先假设H0成立,基于此前提计算出python 卡方检验做相关性分析案例 python进行卡方检验_ci值,它表示观察值与理论值之间的偏离程度。根据python 卡方检验做相关性分析案例 python进行卡方检验_ci分布及自由度可以确定在H0假设成立的情况下获得当前统计量及更极端情况的概率P。如果P值很小,说明观察值与理论值偏离程度太大,应当拒绝原假设,表示比较资料之间有显著差异;否则就不能拒绝无效假设,尚不能认为样本所代表的实际情况和理论假设有差别。

python 卡方检验做相关性分析案例 python进行卡方检验_假设检验_04=python 卡方检验做相关性分析案例 python进行卡方检验_卡方检验_05=python 卡方检验做相关性分析案例 python进行卡方检验_假设检验_06(i=1,2,3,…,k)

其中,python 卡方检验做相关性分析案例 python进行卡方检验_卡方检验_07为i水平的观察频数,python 卡方检验做相关性分析案例 python进行卡方检验_python 卡方检验做相关性分析案例_08为i水平的期望频数,n为总频数,python 卡方检验做相关性分析案例 python进行卡方检验_卡方检验_09为i水平的期望频率。

例1:从某中学随机抽取两个班,调查他们对待文理分科的态度,结果,甲班37人赞成,27人反对;乙班39人赞成,21人反对,这两个班对待文理分科的态度是否有显著差异(α= .05)?

可以画一个python 卡方检验做相关性分析案例 python进行卡方检验_假设检验_10的行python 卡方检验做相关性分析案例 python进行卡方检验_ci_11列双向表 (2*2 crosstabs)

班级

赞成

反对

甲班

37

27

乙班

39

21

from  scipy.stats import chi2_contingency
import numpy as np
kf_data = np.array([[37,27], [39,21]])
kf = chi2_contingency(kf_datad)
print('chisq-statistic=%.4f, p-value=%.4f, df=%i expected_frep=%s'%kf)
# chisq-statistic=0.4054, p-value=0.5243, df=1 expected_frep=[[39.22580645 24.77419355][36.77419355 23.22580645]]

from  scipy.stats import chi2_contingency
import numpy as np
kf_data = np.array([[37,27], [39,21]])
kf = chi2_contingency(kf_datad)
print('chisq-statistic=%.4f, p-value=%.4f, df=%i expected_frep=%s'%kf)
# chisq-statistic=0.4054, p-value=0.5243, df=1 expected_frep=[[39.22580645 24.77419355][36.77419355 23.22580645]]

结论: 因为p值=0.5243>0.05, 故接受原假设, 认为这两个班对待文理分科的态度无显著差别。

例2:探究死亡年龄和居住地、性别是否有关?

可以画一个python 卡方检验做相关性分析案例 python进行卡方检验_假设检验_12的行python 卡方检验做相关性分析案例 python进行卡方检验_ci_11列双向表 (r*c crosstabs)

old

ruralMale

ruralFemale

urbanMale

urbanFemale

50-54

11.7

8.7

15.4

8.4

55-59

18.1

11.7

24.3

13.6

60-64

26.9

20.3

37

19.3

65-69

41

30.9

54.6

35.1

70-74

66

54.3

71.1

50

from  scipy.stats import chi2_contingency
import numpy as np
kf_data = np.array([[11.7,8.7,15.4,8.4], [18.1,11.7,24.3,13.6],
              [26.9,20.3,37,19.3],[41,30.9,54.6,35.1],
              [66,54.3,71.1,50]])
kf = chi2_contingency(kf_data)
print('chisq-statistic=%.4f, p-value=%.4f, df=%i expected_frep=%s'%kf)
# chisq-statistic=2.9208, p-value=0.9961, df=12 expected_frep=[[11.70042044  8.998674   14.46649418  9.03441138][17.92123221 13.78303687 22.15795602 13.8377749 ][27.39804334 21.07155563 33.87516171 21.15523933][42.77800776 32.90012937 52.89107374 33.03078913][63.90229625 49.14660414 79.00931436 49.34178525]]

from  scipy.stats import chi2_contingency
import numpy as np
kf_data = np.array([[11.7,8.7,15.4,8.4], [18.1,11.7,24.3,13.6],
              [26.9,20.3,37,19.3],[41,30.9,54.6,35.1],
              [66,54.3,71.1,50]])
kf = chi2_contingency(kf_data)
print('chisq-statistic=%.4f, p-value=%.4f, df=%i expected_frep=%s'%kf)
# chisq-statistic=2.9208, p-value=0.9961, df=12 expected_frep=[[11.70042044  8.998674   14.46649418  9.03441138][17.92123221 13.78303687 22.15795602 13.8377749 ][27.39804334 21.07155563 33.87516171 21.15523933][42.77800776 32.90012937 52.89107374 33.03078913][63.90229625 49.14660414 79.00931436 49.34178525]]

结论: 因为p值=0.9961>0.05, 故接受原假设, 认为死亡年龄和居住地、性别无显著差别。