探究影响因素的常用方法之一——卡方检验
本文介绍了卡方检验(Chi-Square Test),一种用于检验分类变量之间关联关系的统计方法。文章首先阐述了卡方检验的起源和基本原理,接着详细说明了计算卡方统计量的步骤。通过一个具体的案例分析,展示了卡方检验的实际应用,并提供了Python和R的代码示例。文章还讨论了使用卡方检验时的注意事项,并总结了其在社会科学、医学和其他领域的广泛应用。卡方检验通过分析分类变量之间的独立性和差异性,为研究提
卡方检验(Chi-Square Test)
卡方检验是一种用于检验分类变量之间关联关系的统计方法,常用于检验实际观测频数与理论频数之间的差异。该方法在社会科学、医学、遗传学等领域应用广泛。
一、起源
卡方检验由英国统计学家卡尔·皮尔逊(Karl Pearson)于1900年提出。皮尔逊在研究生物统计学时,发现传统的统计方法难以处理分类数据,因此提出了卡方检验,以评估观测数据与预期数据之间的差异。
二、原理
卡方检验基于样本频数与期望频数之间的差异,通过计算卡方统计量来判断两个变量是否独立。卡方统计量的计算公式如下:
χ2=∑(Oi−Ei)2Ei\chi^2 = \sum \frac{(O_i - E_i)^2}{E_i}χ2=∑Ei(Oi−Ei)2
其中:
- OiO_iOi 为观测频数。
- EiE_iEi 为期望频数。
卡方统计量服从卡方分布,其自由度为(r−1)(c−1)(r-1)(c-1)(r−1)(c−1),其中 rrr 为行数,ccc 为列数。
三、步骤
- 数据准备:收集分类变量的数据,构建列联表。
- 计算期望频数:根据行和列的边际总和计算期望频数。
- 计算卡方统计量:根据公式计算卡方统计量。
- 确定显著性水平:根据卡方分布表确定显著性水平,比较卡方统计量与临界值。
四、应用场景
卡方检验广泛应用于各个领域,特别是在以下情况下:
- 评估两个分类变量之间的独立性。
- 检验样本分布与理论分布的适配度。
- 分析不同组间的差异,如药物实验中的治疗效果比较。
五、案例分析
假设我们有一组数据,包含不同性别和是否喜欢某种饮料的人数。我们希望通过卡方检验来评估性别与饮料偏好之间是否有显著关系。数据如下:
性别 喜欢 不喜欢
男 30 20
女 25 25
-
数据准备:
性别 喜欢 不喜欢 男 30 20 女 25 25 -
计算期望频数:
期望频数计算公式为:
Eij=(row_totali×col_totalj)grand_totalE_{ij} = \frac{(row\_total_i \times col\_total_j)}{grand\_total}Eij=grand_total(row_totali×col_totalj)
喜欢:((55 * 50) / 100) = 27.5 不喜欢:((55 * 50) / 100) = 22.5 -
计算卡方统计量:
χ2=∑(Oi−Ei)2Ei\chi^2 = \sum \frac{(O_i - E_i)^2}{E_i}χ2=∑Ei(Oi−Ei)2
χ2=(30−27.5)227.5+(20−22.5)222.5+(25−27.5)227.5+(25−22.5)222.5=0.91\chi^2 = \frac{(30 - 27.5)^2}{27.5} + \frac{(20 - 22.5)^2}{22.5} + \frac{(25 - 27.5)^2}{27.5} + \frac{(25 - 22.5)^2}{22.5} = 0.91χ2=27.5(30−27.5)2+22.5(20−22.5)2+27.5(25−27.5)2+22.5(25−22.5)2=0.91
-
确定显著性水平:
自由度为1,查表得知在0.05显著性水平下的临界值为3.841,由于0.91 < 3.841,因此我们不能拒绝原假设,即性别与饮料偏好之间无显著关系。
六、Python代码示例
使用Python进行卡方检验,可以使用scipy库中的chi2_contingency函数:
import numpy as np
from scipy.stats import chi2_contingency
# 数据准备
data = np.array([[30, 20], [25, 25]])
# 计算卡方检验
chi2, p, dof, expected = chi2_contingency(data)
print(f"卡方统计量: {chi2}")
print(f"p值: {p}")
print(f"自由度: {dof}")
print(f"期望频数: {expected}")
七、R代码示例
使用R进行卡方检验,可以使用chisq.test函数:
# 数据准备
data <- matrix(c(30, 20, 25, 25), nrow = 2, byrow = TRUE)
# 计算卡方检验
result <- chisq.test(data)
print(paste("卡方统计量:", result$statistic))
print(paste("p值:", result$p.value))
print(paste("自由度:", result$parameter))
print("期望频数:")
print(result$expected)
八、注意事项
- 卡方检验适用于频数数据,样本量较小时可能不适用。
- 每个单元格的期望频数应大于5,若小于5,建议合并分类或使用费舍尔精确检验。
- 卡方检验只适用于独立样本,不适用于配对样本或重复测量数据。
九、总结
卡方检验是一种灵活且有效的统计方法,特别适用于分析分类变量之间的关系。通过卡方检验,研究者可以评估分类变量之间的独立性和差异性,为社会科学、医学和其他领域的研究提供重要支持。
更多推荐


所有评论(0)