缺失数据:先解释为什么没观测到
缺失不是表格里的空白字符,而是一个数据生成过程。处理方法取决于“缺失概率与什么有关”,不是取决于缺失比例看起来大不大。
用缺失指示变量描述机制
令 \(Y\) 是本应观测的变量,\(R=1\) 表示已观测,\(R=0\) 表示缺失。再把完整数据分成已观测部分 \(Y_{\mathrm{obs}}\) 和缺失部分 \(Y_{\mathrm{mis}}\)。
flowchart TD
A[发现缺失] --> B{缺失概率依赖什么}
B -->|不依赖任何数据| C[MCAR]
B -->|只依赖已观测数据| D[MAR]
B -->|仍依赖缺失值本身| E[MNAR]
C --> F[完整案例可能无偏但损失精度]
D --> G[多重插补 / 似然 / 加权]
E --> H[显式机制模型与敏感性分析]
三种机制是关于概率分布的假设:
MCAR:完全随机缺失
例子:一批问卷因随机运输事故丢失。完整案例仍可代表原样本,但有效样本量下降。
MAR:随机缺失
例子:高龄受访者更容易漏答收入,但年龄已完整记录。给定年龄后,缺失概率不再依赖未报告收入。
MNAR:非随机缺失
给定已观测信息后,缺失概率仍与缺失值本身有关。例子:高收入者即使在同年龄、同职业内也更不愿报告收入。
MCAR、MAR、MNAR 不能只靠观测数据完全区分。机制判断需要采集流程、领域知识和敏感性分析。
第一步是画出缺失模式
先做三张表:
- 每个变量的缺失数和缺失率
- 每种缺失组合的频数
- 缺失与已观测变量、处理组和结果代理变量的关系
还要核对特殊编码。-9、999、空字符串和“未适用”可能被错误当成真实值;结构性不适用也不等于随机缺失。
只报告“总体缺失 8%”不够。一个关键结果变量缺失 8%,与八十个变量各随机缺一点,分析后果完全不同。
完整案例分析要求比想象中强
完整案例分析删除任一分析变量缺失的行。它简单、可复现,但可能损失大量信息。
若用于回归,完整案例估计无偏的条件不一定要求全局 MCAR;更准确的条件取决于缺失如何与结果和协变量关联。但把“删掉就行”当默认做法,通常无法说明条件是否满足。
完整案例还可能改变目标人群。若老年人更常缺失,最终估计描述的是较年轻、数据完整的人。
单次填补低估不确定性
用均值、中位数或一次回归预测填补,会把猜测值当成真实观测:
- 边际方差被压小
- 变量间关系被扭曲
- 标准误通常偏小
- 填补模型的不确定性消失
缺失指示变量加常数填补在纯预测中有时有用,但不自动给出无偏的解释性或因果效应。
末次观测结转把后续值固定为最后一次观测,隐含“退出后不再变化”的强假设。纵向数据中通常不可信。
多重插补保留填补不确定性
多重插补生成 \(m\) 份完整数据:
flowchart LR
A[含缺失的原始数据] --> B1[插补数据 1]
A --> B2[插补数据 2]
A --> B3[插补数据 m]
B1 --> C1[同一分析模型]
B2 --> C2[同一分析模型]
B3 --> C3[同一分析模型]
C1 --> D[Rubin rules 合并]
C2 --> D
C3 --> D
第 \(j\) 份数据得到估计 \(Q_j\) 和方差 \(U_j\)。合并估计为:
插补内方差与插补间方差为:
总方差是:
第二项把“不同合理填补会给出不同答案”计入不确定性。
插补模型应包含分析模型中的结果、处理、协变量、交互和非线性项,还可加入与缺失或缺失值相关的辅助变量。插补必须发生在 bootstrap 或交叉验证的每个训练样本内部,不能先用全数据插补再评估预测。
似然与加权提供其他路线
在 MAR 和模型正确时,最大似然可直接利用每个单位已观测到的部分。线性混合模型常用于不平衡纵向数据,不需要把每条轨迹先补齐。
逆概率观测加权先估计 \(\pi_i=P(R_i=1\mid X_i)\),再令已观测单位权重为:
它把较难被观测到的单位放大。极端权重会增加方差,应检查重叠、截断策略和加权后平衡。
多重插补主要建模缺失值,加权主要建模观测机制。二者都依赖没有遗漏关键预测变量。
MNAR 必须做敏感性分析
MNAR 无法仅靠已观测数据修复。常见做法包括:
- pattern-mixture:按缺失模式建模,再对未观测部分施加偏移
- selection model:联合建模结果与缺失概率
- delta adjustment:把 MAR 插补值统一上调或下调 \(\delta\)
- tipping point:寻找结论刚好翻转所需的偏移强度
例如把所有未观测收入的插补值增加 10%、20%、30%,观察均值差或回归系数何时改变方向。重点不是选一个“正确 \(\delta\)”,而是展示结论对不可验证假设的依赖。
缺失发生在结果、处理和协变量时问题不同
结果缺失主要削弱结果比较,并可能导致失访偏差。处理缺失会让暴露定义不清,不能只当普通协变量插补。协变量缺失既影响精度,也可能破坏混杂调整。
删失也不是一般缺失。生存分析中只知道事件时间超过某个点,应使用删失模型保留这条信息,不能把它当成普通空值。
常见误区
- 缺失率低于 5% 就可忽略 → 偏差取决于机制和位置,不只取决于比例
- 检验 MCAR 不显著就证明 MCAR → 低功效与未观测部分使这种证明不成立
- 插补次数固定用 5 次 → 缺失信息高时需要更多插补,并检查 Monte Carlo 误差
- 插补后只分析一份数据 → 丢掉插补间不确定性
- 把结果变量排除在插补模型外 → 常削弱变量关系并造成不相容
- 插补值看着合理就够了 → 还要检查分布、关系、收敛和最终估计的敏感性
缺失数据检查清单
- 缺失编码、结构性不适用和真实缺失是否区分?
- 是否报告变量缺失率、组合模式和退出时间?
- 缺失机制在当前流程中为何可能是 MCAR、MAR 或 MNAR?
- 所选方法的假设是否与 estimand 和分析模型相容?
- 多重插补是否包含结果、处理、交互、非线性和辅助变量?
- 插补、加权或似然模型的诊断是否完成?
- 是否用 MNAR 情景或 tipping point 展示结论稳健性?
缺失数据分析的目标不是把表格填满,而是让未观测部分带来的不确定性诚实地进入结论。