
卡方(Chi-Squared)
卡方(Chi-Squared,记作 )是一种统计方法,用于检验两个变量之间是否存在显著的相关性或差异。它通常用于分类数据的分析,广泛应用于特征选择、假设检验以及频率数据分析。
1. 卡方的基本定义
卡方统计量衡量的是实际观测值(Observed Frequency, O)与期望值(Expected Frequency, E)之间的偏差程度。其计算公式为:
-
O:实际观测频数。
-
E:期望频数,表示在假设变量独立时,某类别的理论频数,计算公式为:

-
值越大,实际观测值与期望值的偏离越大,说明变量之间的关系越强。
2. 应用场景
- 独立性检验:用于检验两个分类变量是否存在相关性,例如客户性别与购买偏好的关系。
- 适配度检验:用于检验样本分布是否符合某种理论分布。
- 特征选择:在机器学习中,用于评估特征与目标变量的依赖性,筛选重要特征。
3. 卡方检验的假设
- 原假设(Null Hypothesis,
):两个变量独立(无相关性)。
- 备择假设(Alternative Hypothesis,
):两个变量相关(有相关性)。
通过计算卡方统计量 并与临界值或 p 值比较,可以决定是否拒绝原假设。
4. 卡方检验的步骤
-
构造列联表:
- 对两个变量(例如 A 和 B)构造频率分布表。
- 表中每一项是变量 A 和 B 各类别的联合频数。
-
计算期望值:
- 对列联表中的每一项,使用公式
计算期望频数。
- 对列联表中的每一项,使用公式
-
计算卡方统计量:
- 按公式
计算
。
- 按公式
-
与临界值比较或计算 p 值:
- 根据自由度 df=(行数−1)×(列数−1)查表确定临界值,或者直接比较 p 值与显著性水平 α。
5. 示例
示例 1:独立性检验
假设某商场调查了顾客性别(男性、女性)和购买偏好(喜欢、不喜欢)的关系,数据如下:
| 喜欢 | 不喜欢 | 总计 | |
|---|---|---|---|
| 男性 | 50 | 30 | 80 |
| 女性 | 20 | 50 | 70 |
| 总计 | 70 | 80 | 150 |
计算卡方统计量:
-
计算期望值:

-
计算
:
-
比较
值与临界值,判断是否拒绝原假设。
6. 优点和局限性
优点
- 计算简单:只需要频率信息即可进行分析。
- 适用范围广:适合离散型数据。
- 无需分布假设:卡方检验不依赖于数据服从特定分布。
局限性
- 对样本大小敏感:样本过小会导致期望值偏低,从而影响结果。
- 仅适用于分类变量:不适用于连续型数据。
- 无法度量强度:卡方检验只告诉我们是否相关,但无法量化相关性的强弱。
7. Python 实现
示例代码
import numpy as np
import pandas as pd
from scipy.stats import chi2_contingency
# 构造列联表
data = np.array([[50, 30], [20, 50]])
df = pd.DataFrame(data, columns=["喜欢", "不喜欢"], index=["男性", "女性"])
# 进行卡方检验
chi2, p, dof, expected = chi2_contingency(data)
# 输出结果
print(f"卡方统计量: {chi2}")
print(f"p值: {p}")
print(f"自由度: {dof}")
print("期望频数:\n", expected)
输出
卡方统计量: 15.930923150510196
p值: 6.56965595634466e-05
自由度: 1
期望频数:
[[37.33333333 42.66666667]
[32.66666667 37.33333333]]
8. 应用场景
-
特征选择:
- 通过卡方值筛选与目标变量依赖性较强的特征(例如文本分类任务中的单词筛选)。
-
市场调查:
- 判断客户属性(性别、年龄)与行为(购买、退货)的关系。
-
医学研究:
- 评估某种治疗方法对不同人群的效果。
9. 总结
卡方检验是统计学中重要的工具,用于分析离散型数据的相关性或独立性。在数据分析和机器学习中,它被广泛用于特征选择和频率数据的分析。尽管存在一些局限性,但结合其他统计方法,卡方检验能有效提升分析的准确性和效率。
1525

被折叠的 条评论
为什么被折叠?



