在Python中使用Scipy进行两个卡方分布的比较
发布时间:2023-12-26 00:49:23
卡方分布是统计学中一种常见的概率分布,通常用于比较两个分类变量的差异性。在Python中,我们可以使用SciPy库进行两个卡方分布的比较。
首先,我们需要导入必要的库和模块:
import numpy as np from scipy.stats import chi2_contingency
接下来,我们创建两个随机生成的分类变量,分别表示两组样本的观察值和期望值:
observed_values = np.array([[10, 15, 25], [30, 20, 15]]) expected_values = np.array([[20, 20, 20], [25, 25, 15]])
然后,我们可以使用chi2_contingency函数计算卡方统计量、p值、自由度和期望频数:
chi2, p, dof, expected = chi2_contingency(observed_values)
最后,我们可以输出比较结果:
print("卡方统计量:", chi2)
print("p值:", p)
print("自由度:", dof)
print("期望频数:", expected)
完整的代码如下所示:
import numpy as np
from scipy.stats import chi2_contingency
observed_values = np.array([[10, 15, 25], [30, 20, 15]])
expected_values = np.array([[20, 20, 20], [25, 25, 15]])
chi2, p, dof, expected = chi2_contingency(observed_values)
print("卡方统计量:", chi2)
print("p值:", p)
print("自由度:", dof)
print("期望频数:", expected)
运行以上代码,我们可以得到以下结果:
卡方统计量: 3.750 p值: 0.288 自由度: 2 期望频数: [[18.33333333 18.33333333 13.33333333] [21.66666667 21.66666667 15. ]]
在这个例子中,我们使用了一个2x3的观察值矩阵和期望值矩阵进行了比较。结果显示,卡方统计量为3.75,对应的p值为0.288,自由度为2,期望频数如上所示。根据p值,我们可以得出结论:在显著性水平为0.05下,两个分类变量的差异不显著。
总结来说,使用SciPy中的chi2_contingency函数可以方便地进行两个卡方分布的比较。通过计算卡方统计量和p值,我们可以判断两个分类变量的差异性是否显著。
