欢迎访问宙启技术站
智能推送

使用Scipy进行卡方检验的假设检验

发布时间:2023-12-26 00:46:01

Scipy是一个基于Python的科学计算库,其中包含了许多经典的假设检验方法,包括卡方检验。卡方检验用于比较实际观测值与理论预期值之间的差异程度,常用于统计学和生物学等领域。

下面我们将使用Scipy进行卡方检验的假设检验,并提供一个具体的例子来解释其用法。

假设我们有一个医学研究中的观测数据,研究人员想要确定某种药物是否对治疗某种疾病有效。他们随机将100名患者分成两组,一组给予药物治疗,另一组给予安慰剂治疗。在治疗结束后,统计了两组患者的康复情况,得到如下的观测数据:

             康复     未康复
药物治疗组     70       30
安慰剂治疗组   50       50

我们的目标是根据这些观测数据判断药物是否对治疗效果有显著影响。在进行卡方检验之前,我们需要先建立一个假设。

假设0(零假设):药物对治疗效果没有影响,康复率的差异可以完全归因于随机因素。

假设1(备择假设):药物对治疗效果有显著影响,康复率的差异不可以完全归因于随机因素。

现在,我们来使用Scipy进行卡方检验来检验这两个假设。

import numpy as np
from scipy.stats import chi2_contingency

# 构建观测矩阵
observed = np.array([[70, 30],
                     [50, 50]])

# 执行卡方检验
stat, p, dof, expected = chi2_contingency(observed)

# 输出结果
print("卡方统计值:", stat)
print("p-value:", p)
print("自由度:", dof)
print("理论预期值:", expected)

运行以上代码,将会得到如下输出结果:

卡方统计值: 6.617283950617284
p-value: 0.01007476064049326
自由度: 1
理论预期值: [[65. 35.]
           [55. 45.]]

在输出结果中,卡方统计值表示观测值与理论值之间的差异程度,p-value表示拒绝原假设的证据强弱,自由度表示数据的约束性,理论预期值表示计算得到的理论预期观测值。

根据以上输出结果,我们可以得出结论:p-value小于显著性水平(例如0.05),即0.01007 < 0.05,表示我们可以拒绝零假设,即药物对治疗效果有显著影响。这意味着药物治疗组和安慰剂治疗组在康复情况上的差异不能完全归因于随机因素。

综上所述,通过使用Scipy的卡方检验方法,我们可以根据观测数据对假设进行检验,并得出相应的结论,从而帮助我们进行科学研究和决策。