Python 卡方独立性检验科普

在统计学中,卡方独立性检验是一种用来检验两个分类变量之间是否独立的统计方法。本文将通过一个简单的Python代码示例,介绍如何使用Python进行卡方独立性检验。

什么是卡方独立性检验?

卡方独立性检验(Chi-square test of independence)是一种检验两个分类变量之间是否相互独立的统计方法。如果两个变量相互独立,那么它们的联合分布应该等于各自边缘分布的乘积。卡方独立性检验通过比较观察频数和期望频数之间的差异来检验这种假设。

卡方独立性检验的步骤

  1. 准备数据:收集两个分类变量的数据,并构建一个列联表(Contingency Table)。
  2. 计算期望频数:根据边际总数和行/列总数,计算每个单元格的期望频数。
  3. 计算卡方统计量:使用观察频数和期望频数计算卡方统计量。
  4. 确定显著性水平:选择一个显著性水平(例如0.05),确定卡方分布的临界值。
  5. 做出结论:如果计算出的卡方统计量大于临界值,则拒绝原假设,认为两个变量不独立;否则,不能拒绝原假设,认为两个变量独立。

Python 实现卡方独立性检验

Python中的scipy库提供了chi2_contingency函数,可以直接进行卡方独立性检验。以下是一个简单的示例:

import numpy as np
from scipy.stats import chi2_contingency

# 假设我们有以下列联表数据
observed = np.array([[10, 20], [30, 40]])

# 进行卡方独立性检验
chi2, p, dof, expected = chi2_contingency(observed)

print("卡方统计量:", chi2)
print("P值:", p)
print("自由度:", dof)
print("期望频数:\n", expected)

代码解释

  1. 导入库:导入numpyscipy.stats中的chi2_contingency函数。
  2. 准备数据:创建一个二维数组observed,表示列联表的观察频数。
  3. 进行检验:使用chi2_contingency函数进行卡方独立性检验,返回卡方统计量、P值、自由度和期望频数。
  4. 输出结果:打印卡方统计量、P值、自由度和期望频数。

流程图

以下是使用Mermaid语法绘制的卡方独立性检验流程图:

flowchart TD
    A[开始] --> B{准备数据}
    B --> C[构建列联表]
    C --> D[计算期望频数]
    D --> E[计算卡方统计量]
    E --> F[确定显著性水平]
    F --> G[做出结论]
    G --> H[结束]

结论

通过本文的介绍和示例代码,我们了解到Python可以方便地进行卡方独立性检验。这种方法在社会科学、生物统计等领域有广泛的应用。希望本文能帮助读者更好地理解和使用卡方独立性检验。