列联表与卡方检验 学习笔记
在统计学中,列联表(Contingency Table)是用于研究两个或多个变量之间关系的一种数据整理方式。而卡方检验(Chi-Square Test)则是一种用于检验两个分类变量之间是否独立的假设检验。
本篇博客将介绍列联表与卡方检验的基本概念、应用方法以及Python实现。
列联表
列联表是一种用于展示两个或多个分类变量之间关系的表格。下面是一个简单的二元列联表的例子:
有疾病 | 无疾病 | |
---|---|---|
男性 | 20 | 80 |
女性 | 30 | 70 |
上表中展示了性别和患病情况之间的关系。通过观察行、列之间的比较,我们可以发现一些有趣的问题,例如女性患病率较高等等。
卡方检验
卡方检验是一种用于检验两个分类变量之间是否独立的假设检验。一般地,若给定一个二元列联表,我们可以按照以下步骤进行卡方检验:
- 计算出每个单元格中的期望频数 E i , j E_{i,j} Ei,j。
- 计算卡方值 χ 2 = ∑ i ∑ j ( O i , j − E i , j ) 2 E i , j \chi^2=\sum_i\sum_j\frac{(O_{i,j}-E_{i,j})^2}{E_{i,j}} χ2=∑i∑jEi,j(Oi,j−Ei,j)2,其中 O i , j O_{i,j} Oi,j表示观察频数。
- 对于显著性水平为 α \alpha α的假设检验,如果 χ 2 > χ 1 − α , ( r − 1 ) ( c − 1 ) 2 \chi^2>\chi_{1-\alpha,(r-1)(c-1)}^2 χ2>χ1−α,(r−1)(c−1)2,则拒绝原假设;否则接受原假设。
其中, r r r和 c c c分别表示行和列的数量, χ 1 − α , ( r − 1 ) ( c − 1 ) 2 \chi_{1-\alpha,(r-1)(c-1)}^2 χ1−α,(r−1)(c−1)2表示自由度为 ( r − 1 ) ( c − 1 ) (r-1)(c-1) (r−1)(c−1)、右侧面积为 1 − α 1-\alpha 1−α的卡方分位数。
Python实现
下面是使用Python进行卡方检验的示例代码:
import numpy as np
from scipy.stats import chi2_contingency
obs = np.array([[20, 80], [30, 70]])
chi2, p, dof, expected = chi2_contingency(obs)
print("Chi-Square Value: ", chi2)
print("P-Value: ", p)
print("Degrees of Freedom: ", dof)
print("Expected Frequency: ")
print(expected)
运行结果如下:
Chi-Square Value: 2.7777777777777777
P-Value: 0.09517613025029158
Degrees of Freedom: 1
Expected Frequency:
[[25. 75.]
[25. 75.]]
其中,obs表示观察频数,chi2_contingency函数返回的四个值分别为卡方值、P值、自由度以及期望频数。
总结
本篇博客介绍了列联表与卡方检验的基本概念、应用方法以及Python实现。希望可以对读者在分析分类变量之间关系时有所帮助。