卡方检验的原理和实现方法

您所在的位置:网站首页 卡方检验公式推导过程 卡方检验的原理和实现方法

卡方检验的原理和实现方法

2024-07-07 03:08| 来源: 网络整理| 查看: 265

学习目标

掌握卡方检验的原理和实现

卡方检验用来分析两个名义变量之间是否显著相关。

学了这么多连续变量的统计分析,那么对于计数资料可咋整。小伙伴会问了:如果我想看不同患者人群的术后复发率有没有差异,怎么办?这时候就需要欢迎我们的统计小助手——卡方检验闪亮登场啦!

卡方检验可是一位重量级选手,凡是涉及到计数资料分布的比较都需要他的帮忙。

用药物A治疗急性心肌梗死患者198例,24小时内死亡11例,病死率为5.56%,另42例治疗时采用药物B,24小时内死亡6例,病死率为14.29%,提问:两组病死率有无差别?

表1. 两种药物急性心肌梗塞患者治疗后24小时内死亡情况。

1596784416853_卡方检验01.jpg

卡方检验的目的:确定样本对象落入各类别的比例是否与随机期望比例相等。

1.卡方值计算

1596784433042_卡方检验02.jpg

两个概念

·观测频数

·预期频数

计算各行和各列的和:

1596784458628_卡方检验03.jpg

计算每个格子在当前行中的预期频数

1596784478385_卡方检验04.jpg

列出每个格子的观测频数和预期频数

1596784502663_卡方检验05.jpg

卡方值的计算公式:

1596784536985_卡方检验06.jpg

计算每个格子的值:

1596784556800_卡方检验07.jpg

最终 $$\chi^2$$=0.19+4.17+10.06+0.19+4.17+4.11=22.89

自由度$df=(R-1)(C-1)=(2-1)(3-1)=2$

结论

1596784596034_卡方检验08.jpg

2.代码实现

手动代码实现:

·导入数据

import pandas as pd data=pd.read_csv('data/chi2.csv') data.head()

1596784613996_卡方检验09.jpg

·统计频次(交叉表统计)

#统计频次 table=pd.crosstab(data['sex'],data['major']) table

1596784627537_卡方检验10.jpg

·计算预期频次

#计算预期频次 x=o.values col=np.sum(x,axis=1,keepdims=True)#行的和 row=np.sum(x,axis=0,keepdims=True)#列的和 total=np.sum(x)#总和 col,row,total

1596784642528_卡方检验11.jpg

e=col*row/total#计算预期频次 e

·计算卡方值

#计算卡方值 o_miuns_e=o.values-e #o-e chi2=np.sum(np.square(o_miuns_e)/e) chi2

·计算p值

#计算p值 df=(o.shape[0]-1)*(o.shape[1]-1)#自由度 p=1-ss.chi2.cdf(chi2,df) p#7.074778948346072e-06 拒绝原假设 专业选择和性别之间相关

·scipy实现:

Api:scipy.stats.chi2_contingency(observed):

·参数:

observed:观测的实际频次 通常为$$R\times C$$的表格

·返回值:

 chi2:卡方值

 p:p值

 dof:自由度

 expected:预期频次

代码实现

·加载数据

import pandas as pd import scipy.stats as ss data=pd.read_csv('data/chi2.csv') data.head()

·统计观测频次

#统计频次 o=pd.crosstab(data['sex'],data['major']) o

·卡方检验

chi2,p,dof,e=ss.chi2_contingency(o) chi2,p,dof,e

(23.71794871794872, 7.0747789483371884e-06, 2, array([[32.5, 30. , 37.5],[32.5, 30. , 37.5]])) 3.小结

·卡方检验:用来分析两个名义变量之间是否显著相关

·卡方值计算:

观测频次O

预期频次E

自由度:$$(R-1)\times(C-1)$$

api:scipy.stats.chi2_contingency(observed) 猜你喜欢: 什么是RNN?RNN可以做什么?

Python基础视频教程(600集)

Python培训课程



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3