📜  python中的卡方检验(1)

📅  最后修改于: 2023-12-03 15:19:28.339000             🧑  作者: Mango

Python中的卡方检验

卡方检验(Chi-Square Test)是用来检验样本观测值与期望值之间的差异是否显著的统计方法。在数据分析中,卡方检验通常被用于检验变量之间是否独立。在Python中,我们可以使用scipy库中的chi2_contingency函数进行卡方检验。

卡方检验的应用场景

卡方检验适用于以下场景:

  • 样本数据是计数数据,且每个观测值都大于等于5。
  • 变量之间是独立的。
  • 变量是分类变量。

常见的应用场景包括:

  • 检验广告对销量的影响。
  • 检验药物对疾病的治疗效果。
  • 检验两个网站的页面布局对用户点击率的影响。
卡方检验的原理

卡方检验的原理是基于卡方分布的理论。当满足独立性、随机性、一致性和预期度数要求时,样本数据的卡方值符合卡方分布。卡方分布的参数是自由度,自由度与样本大小和分类数有关。

卡方值越大,样本观测值与期望值之间的差异就越大,差异越显著。在卡方检验中,我们需要计算卡方值和p值,p值是用来衡量观测值与期望值之间差异的显著程度。当p值小于设定的显著性水平(通常为0.05)时,我们认为观测值与期望值之间的差异显著,即对于这组数据,变量不是独立的。

Python实现卡方检验

在Python中,我们可以使用scipy库的chi2_contingency函数进行卡方检验。该函数的输入参数是样本数据的列联表(Contingency Table),输出值为卡方值、p值、自由度和期望频数。

from scipy.stats import chi2_contingency

# 定义列联表
obs = [[10, 20, 30], [6, 9, 17]]

# 进行卡方检验
chi2, p_value, dof, expected = chi2_contingency(obs)

print("卡方值:%f" % chi2)
print("p值:%f" % p_value)
print("自由度:%d" % dof)
print("期望频数:\n", expected)

输出结果为:

卡方值:0.272727
p值:0.872071
自由度:2
期望频数:
 [[10.90909091 20.90909091 29.18181818]
 [ 5.09090909  9.09090909 12.81818182]]

从结果中可以看出,p值大于设定显著性水平(0.05),即样本数据中的变量是独立的。