Evan の Logbook
✨ Updates
🎨 Style Guide
🧠 Creative Resources
🗒️ Mind Notes
🧭 Knowbase
📘 SOPs
🩺 Medical Research
🛠️ Tech Chronicles
💰 Fortune Blueprint
📈 R Visionary
📊 Statistics
🖼️ BioVis
卡方检验(Chi-squared Test)
type
status
date
slug
summary
tags
category
icon
password
comment
卡方检验的三种类型
1️⃣ 独立性检验(Test of Independence)
目的
- 判断两个分类变量是否相互独立,或者是否存在统计学关联。
- 常用于调查问卷、病例对照研究等。
假设
- 零假设 H0: 两个变量相互独立,没有统计学关联。
- 备择假设 H1: 两个变量不独立,存在统计学关联。
示例
使用企鹅数据集,检验企鹅的物种 (species) 和岛屿 (island) 是否独立:
结果解释:
- 如果 p 值很小(< 0.05),拒绝 H0 → 物种分布和岛屿有关联。
2️⃣ 同质性检验(Test of Homogeneity)
目的
- 判断两个或多个总体在某个分类变量上的分布是否相同。
- 常用于不同地区、不同处理组之间比例比较。
假设
- 零假设 H0: 所有总体的分类比例相同(同质)。
- 备择假设 H1: 至少有一个总体的分类比例不同。
示例
假设我们有两家商店 (Store A, Store B) 的顾客购买三类饮料 (Coffee, Tea, Juice) 的数量:
结果解释:
- p 值 < 0.05 → 两家商店的饮料购买比例不同(不具同质性)。
3️⃣ 拟合优度检验(Goodness-of-Fit Test)
目的
- 检验一个分类变量的观测频率是否符合理论预期分布。
- 常用于基因型分布(孟德尔遗传定律)、骰子公平性等问题。
假设
- 零假设 H0: 观测分布符合理论期望分布。
- 备择假设 H1: 观测分布与理论期望分布不一致。
示例
掷骰子 60 次,得到的频率为:
结果解释:
- p 值 > 0.05 → 无法拒绝 H0,骰子可以认为是公平的。
🔑 区别
- 独立性检验:一个总体,检查两个变量是否独立。
- 同质性检验:多个总体,检查一个变量的比例是否相同。
- 拟合优度检验:单个分类变量与理论分布的拟合程度。
2. 检验统计量(Chi-squared Statistic)
卡方统计量公式:
期望频数计算:
期望频数基于零假设“变量独立”推导而来:
- 行合计 i:第 i 行所有观测频数的总和
- 列合计 j:第 j 列所有观测频数的总和
- 总样本量:列联表中所有观测频数的总和
3. 自由度
卡方统计量的自由度计算为:
自由度用于查卡方分布表或计算 p 值。
4. 显著性判断
- 根据自由度,查卡方分布表,或使用软件计算 p 值。
- p < α → 拒绝 H0,认为变量存在统计学关联。
5. 卡方检验是近似检验
卡方检验的核心思想是:通过卡方统计量衡量观测频数与期望频数之间的偏离,并将其与理论卡方分布(χ² distribution)进行比较,从而近似计算 p 值。
渐近近似(Asymptotic Approximation)
- 卡方统计量在零假设成立且样本量足够大时,渐近服从卡方分布。
- 这种结果来自于中心极限定理:当观测频数足够大时,频率的分布可以用正态分布近似,进一步推导出卡方分布。
- 因此,卡方检验并不是精确的排列检验,而是依赖数学近似。
渐近近似 vs 排列检验
- 假设我们有一个 2×2 列联表,样本量只有 10:
- 排列检验(Exact):
- 枚举所有可能的 2×2 表格填充方式
- 精确计算每种排列的概率
- p 值为观测结果或更极端情况的概率总和
- 卡方检验(Approximate):
- 直接用 χ² 统计量计算
- 用卡方分布近似估算 p 值
- 不枚举所有排列 → 快速,但可能与精确值略有偏差
- 样本量变为 1000:
- 枚举排列不可行(计算量爆炸)
- 卡方近似变得非常准确,几乎与精确检验一致
优点
- 速度非常快:
- 计算卡方统计量只需简单的代数运算
- 查表或使用软件即可快速得到 p 值
- 特别适合样本量大、期望频数较高的情况。
局限性
- 当样本量较小或某些单元格期望频数低于 5 时:
- 近似不再准确
- 卡方检验可能给出不可靠的 p 值
- 此时需要使用其他更稳健的方法(例如精确检验),但卡方检验本身依然是基于近似的快速方法。
6. 近似检验与 I 型错误率
前面提到,卡方检验是近似检验,它通过渐近分布来估计 p 值。当我们设定显著性水平 α=0.05 时,理论上希望 I 型错误率(错误地拒绝零假设的概率)也接近 5%。
然而,由于近似误差的存在,实际的 I 型错误率可能偏离设定值。如果样本量太小或者表格过于稀疏,这种偏差可能会很大,导致检验结果不可靠。
样本量要求与经验法则
- Cochran (1954) 提出了一条广泛使用的经验规则:
- 所有单元格的期望频数
- 不超过 20% 的单元格期望频数低于 5
- 满足这个条件时,卡方分布的近似足够准确,I 型错误率接近设定值。
为什么低期望频数会影响结果?
- 卡方统计量的推导依赖于中心极限定理,需要足够的样本量使得每个单元格频数接近正态分布。
- 如果某些单元格太小(尤其 < 5):
- 观测频数波动较大
- 近似分布偏离理论卡方分布
- 可能导致 p 值不准确(通常过度拒绝 H0)
实际建议
- 在构建列联表时,检查每个单元格的期望频数
- 若不满足 Cochran 条件 (Cochran’s Rule):
- 收集更多数据(往往不现实)
- 合并稀疏类别以增加频数
- 使用 Fisher 精确检验 (Fisher’s Exact Test) 或 蒙特卡洛模拟卡方检验 (Monte Carlo Simulated Chi-squared Test)(
chisq.test(..., simulate.p.value = TRUE)),这部分会在后文详细展开讨论
7. 稀疏数据处理策略:合并单元格 (Handling Sparse Data: Cell Merging)
7.1 合并单元格的思路
- 通过合并低频类别,减少列联表的维度,增加每个单元格的期望频数,使其满足 Cochran 条件。
- 通常将极少数样本的分类合并为“其他 (Other)”组,或将相似的类别合并为更大的组别。
7.2 合并的原则
- 合并应有统计或业务上的合理性(例如类别性质相近)。
- 合并后仍应保留主要研究假设的可解释性。
- 避免过度合并导致信息丢失。
7.3 示例:合并稀疏类别
假设我们设计了一份调查问卷,统计不同年龄段的人群对饮料类型(Coffee、Tea、Juice)的偏好:
- 年龄段分为:18–25 岁、26–35 岁、36–45 岁、46 岁以上
- 问卷结果显示:
- 年轻人(18–35 岁)参与人数较多
- 高龄组(36–45 岁、46+)参与人数极少
当我们用这些数据构建列联表时,部分单元格(尤其是高龄组的 Tea、Juice)观测频数为 0 或接近 0,期望频数明显低于 5,违反 Cochran 条件,从而影响卡方检验结果的准确性。
✅ 小结
- 合并前:高龄组的部分饮料选择观测频数小于 5,违反 Cochran 条件
- 合并后:期望频数显著提高,满足卡方检验要求
- 通过合理合并稀疏类别,可以避免检验失真,同时保留主要研究信息
8. 稀疏数据处理策略:Fisher 精确检验 (Fisher’s Exact Test)
8.1 背景示例
一项小规模临床试验中,研究药物是否能降低不良反应发生率。共 24 名受试者,其中药物组几乎没有不良反应,对照组有部分病例。构建的 2×2 列联表中,部分单元格观测频数低于 5,违反 Cochran 条件。
8.2 精确检验的原理
- Fisher 精确检验不依赖渐近分布
- 它基于所有可能的表格排列情况,精确计算在零假设成立时出现观测结果或更极端结果的概率
- 非常适用于小样本、稀疏数据,尤其是 2×2 表格
8.3 在 R 中实现
8.4 结果解释
- 由于样本量小,卡方检验使用渐近近似计算的 p 值可能失真
- Fisher 检验通过枚举所有可能结果组合,计算精确概率
- 在小样本情况下,Fisher 检验的 p 值更准确,也能避免假阳性或假阴性
8.5 小节
那么何时使用 Fisher 精确检验?
- 任意单元格期望频数 < 1 → 必须使用 Fisher。
- 超过 20% 的单元格期望频数 < 5 → 强烈建议使用 Fisher。
- 整体样本量小(如 < 30) → Fisher 更可靠。
- 2×2 表格 → Fisher 是首选方法。
- 更大表格 → 可考虑蒙特卡洛模拟 (
chisq.test(..., simulate.p.value = TRUE))。
9. 稀疏数据处理策略:蒙特卡洛模拟卡方检验 (Monte Carlo Simulated Chi-squared Test)
当列联表规模较大(>2×2),且存在多个低频单元格时,Fisher 精确检验虽然精确,但计算成本极高甚至无法实现。这时可以使用 蒙特卡洛模拟卡方检验,通过随机化方法估算 p 值。
9.1 背景示例
设想我们有一个流行病学调查,统计 4 种不同治疗方案与 3 种疾病结局之间的关联:
- 表格为 4×3,总样本量不大
- 部分单元格观测频数 < 5
- Fisher 精确检验在高维表格下计算复杂度高,不适用
9.2 原理
- 通过大量随机打乱(Monte Carlo 重排)样本标签
- 模拟在零假设下的卡方统计量分布
- 根据观测统计量在该分布中的位置,估算 p 值
- 是 Fisher 精确检验的近似方法,但计算效率更高,适合大维度表格
9.3 在 R 中实现
9.4 结果解释
- 普通卡方检验基于渐近分布,低频单元格导致 p 值可能失真
- 蒙特卡洛检验通过随机重排近似精确概率
- 模拟次数
B越大,结果越接近 Fisher 精确值
- 为什么常用
B = 9999而不是直接用10000? - 当使用蒙特卡洛模拟估算 p 值时,结果是:
- 如果设置
B = 10000,那么 p 常常是一个 整百分比(例如 500/10000 = 0.05),在临界值(如 0.05 显著性水平)附近容易造成判断困难: - p 值恰好等于 0.05 → 不好判断是否“< α”
- 使用
B = 9999: - 避免分母是整万数
- p 值不容易正好落在 0.05
- 提供更平滑的估计和更好的区分度
- 适合:
- 高维列联表
- 存在多个低频单元格
- Fisher 精确检验计算量过大
10. 卡方检验的类别和扩展 (Types and Variants of Chi-squared Tests)
在前面的章节中,我们已经多次使用卡方检验来处理不同的统计问题。实际上,“卡方检验”并不是单一方法,而是一个统计检验家族,可以根据 应用场景、统计量定义、p 值计算方式、连续性修正、扩展变种 等多个维度来分类。
10.1 按应用场景分类 (By Application)
这是最常见的分类方法,根据研究问题的不同,卡方检验可以分为:
- 拟合优度检验 (Goodness-of-Fit Test)
- 独立性检验 (Test of Independence)
- 同质性检验 (Test of Homogeneity)
10.2 按统计量定义分类 (By Test Statistic)
在卡方检验中,核心是计算一个检验统计量 (Test Statistic),衡量观测频数与期望频数的偏离程度。常见的统计量主要有两类:
1️⃣ Pearson 卡方检验 (Pearson’s Chi-squared Test)
背景
- 由卡尔·皮尔逊 (Karl Pearson) 于 1900 年提出,是最经典、最常用的卡方检验方法。
- 广泛应用于拟合优度检验、独立性检验、同质性检验。
统计量公式
原理
- 基于中心极限定理,假设在零假设下,统计量渐近服从卡方分布。
- 通过计算观测值与期望值的平方差并按期望值标准化,衡量偏离程度。
特点
- 适用于大多数分类数据分析。
- 样本量较小时近似精度下降(违反 Cochran 条件)。
- 在大样本情况下效果非常好。
R 示例
2️⃣ 似然比卡方检验 (Likelihood Ratio Chi-squared Test)
背景
- 基于最大似然估计 (Maximum Likelihood Estimation, MLE) 和似然比原理。
- 在统计建模(如对数线性模型、广义线性模型)中常用。
统计量公式
原理
- 比较:
- 观测数据的似然值:L(O)
- 零假设下期望数据的似然值:L(E)
- 似然比检验统计量:
- 在零假设下,渐近服从卡方分布。
特点
- 更接近对数似然原理,在小样本时更稳健。
- 与 Pearson 卡方在大样本下几乎相同(统计功效接近)。
- 更适合建模框架(如对数线性模型、泊松回归)。
R 示例
🔑 对比总结
特点 | Pearson χ2 | Likelihood Ratio G^2 |
统计原理 | 偏差平方和 | 似然比 (Log-likelihood ratio) |
渐近分布 | 卡方分布 | 卡方分布 |
小样本表现 | 精度较低 | 更稳健 |
大样本表现 | 与 G^2 接近 | 与 Pearson 接近 |
典型应用 | 经典卡方检验、独立性检验 | 对数线性模型、信息论分 |
10.3 按 p 值计算方式分类 (By p-value Calculation)
在卡方检验中,p 值的计算方法取决于样本量大小和表格稀疏程度。主要有三种方式:
1️⃣ 渐近 p 值 (Asymptotic p-value)
背景
- 传统卡方检验使用渐近理论(asymptotic theory):
- 在零假设成立且样本量足够大时,Pearson 卡方统计量 χ2\chi^2 渐近服从卡方分布。
- 大多数统计软件默认使用此方法。
原理
- 其中 df=(r−1)(c−1) 为自由度。
特点
- 计算快速,无需重采样或排列。
- 当期望频数较低(< 5)时,渐近近似可能不准确。
R 示例
2️⃣ 精确 p 值 (Exact p-value)
背景
- 当表格稀疏或样本量非常小时,渐近近似不再可靠。
- 精确 p 值通过枚举或排列计算在零假设下观测结果或更极端结果的概率。
原理
- 对于 2×2 表格,常用 Fisher 精确检验:
- 基于超几何分布计算精确概率。
- 对于更高维表格,可以用全排列方法计算,但计算量极大。
特点
- 小样本下准确无偏。
- 计算成本高,维度大时不可行。
R 示例
3️⃣ 蒙特卡洛模拟 p 值 (Monte Carlo Simulated p-value)
背景
- 当表格较大且存在稀疏单元格时:
- Fisher 精确检验不可行(计算量大)
- 渐近 p 值不可靠
- 蒙特卡洛模拟是折中方案。
原理
- 通过大量随机重排(permutation)观测频数,模拟零假设下卡方统计量的分布。
- 根据模拟结果估算 p 值。
特点
- 精度取决于模拟次数 BB,通常取 9999。
- 适合高维表格和稀疏数据。
- 是 Fisher 精确检验的近似替代。
R 示例
🔑 对比总结
方法 | 原理 | 适用场景 | 计算量 |
渐近 p 值 (Asymptotic) | 理论卡方分布 | 大样本、期望频数高 | 低 |
精确 p 值 (Exact) | 全排列、超几何分布 | 小样本、稀疏表格 | 高 |
蒙特卡洛模拟 (Monte Carlo) | 随机重排模拟 | 多维稀疏表格 | 中等 |
10.4 按连续性修正分类 (Continuity Correction)
在卡方检验中,我们使用的统计量是基于连续分布(卡方分布)推导的,而观测数据是离散计数。当表格较小(尤其是 2×2 表格)或样本量较低时,直接使用连续近似可能会高估偏离程度,从而增加 I 型错误率。为了解决这个问题,提出了 连续性修正 (Continuity Correction)。
1️⃣ Yates 连续性修正 (Yates’ continuity correction)
背景
- Frank Yates 于 1934 年提出
- 专门用于 2×2 列联表中的 Pearson 卡方检验
- 在计算每个单元格的偏离度时,引入了 0.5 的修正量
统计量公式
2️⃣ 原理与作用
- 通过减去 0.5,使统计量更保守
- 降低离散数据在连续分布近似下的偏差
- 尤其在小样本、低频单元格的情况下有效
3️⃣ 缺点
- 修正会降低检验功效(Power):
- 减少拒绝零假设的概率
- 在样本量较大时,反而不需要该修正
- 一些现代统计分析更倾向于:
- 使用 Fisher 精确检验
- 或直接关闭连续性修正
4️⃣ R 中的使用
- 在
chisq.test()中,2×2 表格会默认启用 Yates 修正
- 可通过
correct = FALSE关闭:
🔑 小结
- 连续性修正专用于 2×2 表格
- 适用于小样本、低频单元格,减少 I 型错误
- 大样本时建议关闭,以避免检验功效下降
- 替代方法:直接使用 Fisher 精确检验
10.5 卡方检验的扩展和变种 (Extensions)
卡方检验家族中还包括一些专门针对特定研究设计的扩展方法:
1️⃣ McNemar 检验 (McNemar’s Test)
背景
- 由 Quinn McNemar 于 1947 年提出
- 用于配对样本的 2×2 表格,检验前后状态是否有显著变化
- 例如:治疗前后同一批病人的阳性率变化
统计量公式
- b:前阳性后阴性人数
- c:前阴性后阳性人数
- 校正项 (−1) 用于小样本连续性修正
R 示例
2️⃣ Cochran’s Q 检验 (Cochran’s Q Test)
背景
- McNemar 检验的扩展版本
- 用于三组及以上相关样本的二分类变量
- 常用于医学研究,分析不同时间点或不同条件下的配对数据
原理
- 类似于重复测量的卡方检验
- 基于二项式分布的统计量,检测组间差异
R 示例
3️⃣ Mantel-Haenszel 卡方检验 (Mantel-Haenszel Chi-squared Test)
背景
- 用于分层数据下的总体关联性检验
- 常见于流行病学研究,例如多中心临床试验,分析分层后的治疗与结局之间的关联
原理
- 对每一层(stratum)计算 2×2 卡方检验
- 加权合并各层结果,得到总体关联的卡方统计量
- 可以计算合并后的优势比 (Odds Ratio)
R 示例
4️⃣ 趋势检验 (Chi-squared Test for Trend)
背景
- 当分类变量是有序类别(ordinal)时,仅使用普通卡方检验可能丢失信息
- 趋势检验通过线性对比,检测类别与结果之间的单调趋势
原理
- 也称 Mantel Test for Trend
- 检验统计量服从卡方分布,自由度为 1
- 功效通常高于普通独立性检验
R 示例
🔑 小结
- 卡方检验是一个统计家族,包含适用于不同设计和数据结构的方法:
- McNemar:配对 2×2 表格
- Cochran’s Q:多组配对二分类数据
- Mantel-Haenszel:分层分析
- 趋势检验:有序分类变量的趋势检测
- 在实际分析中,根据研究设计和变量特征选择合适的扩展方法。
Prev
置信区间 (Confidence Intervals)
Next
统计功效(Power)与样本量(Sample Size)
Loading...
YouTube 使用笔记