3. 缺失机制的理论判别

在处理缺失值之前,先要回答一个比“怎么补”更根本的问题:数据为什么会缺失。缺失机制描述的是“缺失这一事件”与数据本身之间的关系。同一份数据,如果缺失机制判断错了,后续的插补、删除或建模都会系统性地偏离真实情况。本节围绕三种经典机制——完全随机缺失(MCAR)、随机缺失(MAR)与非随机缺失(MNAR)——讲清它们的统计含义、判别思路,以及在科学数据中的典型表现。

三种机制的统计含义

设完整数据为 Y,缺失指示变量为 R(R=1 表示观测到,R=0 表示缺失)。缺失机制本质上是在描述 R 的概率依赖于什么。

  • 完全随机缺失(MCAR):缺失与任何变量(包括 Y 自身和其他协变量 X)都无关,即 P(R|Y, X) = P(R)。缺失纯属偶然,观测样本是完整样本的一个随机子集。此时直接删除缺失记录不会引入偏差,只会损失样本量。
  • 随机缺失(MAR):缺失依赖于已观测的变量,但在给定已观测变量的条件下与缺失值本身无关,即 P(R|Y, X) = P(R|X_obs)。例如仪器在高湿度环境下更易丢数,而湿度是被记录下来的——只要把湿度纳入模型,缺失就可被“解释”。MAR 是多重插补、EM 算法等主流方法成立的关键前提。
  • 非随机缺失(MNAR):缺失依赖于缺失值本身,即 P(R|Y, X) 中仍含未观测的 Y。例如低于检测限的浓度被记为缺失,或病情越重的受试者越容易失访。此时缺失信息无法仅由观测数据还原,常规插补会产生系统偏差。
记忆要点:MCAR 看“谁都无关”,MAR 看“只与看得到的有关”,MNAR 看“与看不到的有关”。三者是嵌套关系:MCAR ⊂ MAR,MNAR 是 MAR 之外的情形。
缺失机制判别:缺失指示 R 依赖于什么? 缺失指示变量 R MCAR 完全随机缺失 R 与 Y、X 均无关 P(R|Y,X)=P(R) 删除无偏,仅损失样本 MAR 随机缺失 R 依赖已观测的 X P(R|Y,X)=P(R|X_obs) 多重插补/EM 可无偏 MNAR 非随机缺失 R 依赖未观测的 Y P(R|Y,X) 含 Y 本身 常规插补有系统偏差 例:随机录入遗漏、偶发丢包 例:高湿环境丢数(湿度已记录) 例:低于检测限、重症失访 判别思路(由易到难,逐步排除) ① 分组比较:按缺失/未缺失分组,检验各观测变量分布是否一致 → 一致倾向 MCAR ② 逻辑回归:以 R 为因变量,用观测变量预测缺失 → 有显著预测因子倾向 MAR ③ 敏感性分析:对 MNAR 假设不同偏离幅度,观察结论是否稳健 → 无法用数据直接证伪

判别思路:数据能说什么、不能说什么

需要先建立一个重要认识:MNAR 无法仅凭观测数据被直接检验,因为判断它需要用到恰恰缺失掉的那部分信息。因此实际判别是一个“排除 + 敏感性分析”的过程,而不是一次检验定论。

第一步,分组比较。把数据按某变量是否缺失分成两组,比较其他已观测变量的分布(均值、方差、类别比例)。若各组分布高度一致,倾向 MCAR;若存在显著差异,说明缺失与观测变量相关,至少不是 MCAR。常用做法是 t 检验或卡方检验,也可用 Little 的 MCAR 全局检验。

第二步,建模缺失指示。以缺失指示 R 为因变量,用所有观测变量做逻辑回归。若模型整体显著、某些变量系数明显不为零,说明缺失可被观测变量预测,倾向 MAR。这一步同时告诉你“哪些变量该进入插补模型”。

第三步,敏感性分析。对可能的 MNAR,设定一个偏离参数 δ(例如假设缺失值平均比观测值低 0.5 个标准差),在 δ 的不同取值下重跑分析,看结论是否翻转。若结论对 δ 很敏感,就必须谨慎报告。

常见误判:把“分组检验不显著”直接当成 MCAR 的证据。检验不显著可能只是样本量不足、检验功效低,不能反证缺失与数据无关。MCAR 是一个较强假设,实践中应默认怀疑它,而非默认接受它。

科学数据中的典型表现与误判后果

不同学科中,三种机制有各自的“高发场景”,识别这些场景比机械跑检验更有价值。

机制科学数据典型表现误判后果
MCAR传感器偶发丢包、随机录入遗漏、样本随机破损误判为 MAR 时多做插补,通常无害但浪费信息
MAR高湿/高温环境下仪器丢数(环境已记录)、特定批次样本未测某指标误判为 MCAR 而直接删除,导致有偏样本、低估方差
MNAR低于检测限记为缺失、重症受试者失访、超标样本被剔除误判为 MAR 做常规插补,系统性低估极端值、扭曲均值与相关性

以环境监测为例:某站点 PM2.5 传感器在相对湿度大于 85% 时更易失效,而湿度数据完整记录。这属于典型的 MAR——缺失由已观测的湿度驱动。若分析者误判为 MCAR 而直接删除这些记录,就会系统性剔除高湿时段,使年均浓度估计偏向干燥天气,产生偏差。正确做法是把湿度纳入插补模型,或采用多重插补。

再以分析化学为例:浓度低于检出限的样本被记为缺失,这几乎必然是 MNAR,因为缺失概率直接取决于真实浓度的高低。此时用均值或回归插补会把低值“拉高”,导致均值高估、方差低估。合理做法是采用检出限替代法(如 LOD/2、LOD/√2)或基于 Tobit 模型的极大似然估计,并明确报告处理方式。

落到操作:一份可执行的判别记录

为了让判别过程可复现、可审查,建议对每个关键变量留下结构化记录。下面是一份可直接填写的示例(数值为教学假设,非实测):

变量: PM2.5_hourly   缺失率: 12.4%
① 分组比较: 缺失组湿度均值 88.2% vs 观测组 61.5%, p < 0.001 → 非 MCAR
② 逻辑回归: R ~ 湿度 + 温度 + 风速
   湿度系数 +0.42 (p < 0.001), 其余不显著 → 倾向 MAR
③ 敏感性: 假设 MNAR 偏离 δ = -0.3 SD, 年均值变化 < 2% → 结论稳健
判定: MAR(以湿度为条件)
处理: 多重插补, 插补模型纳入湿度、温度、风速

这份记录的价值在于:它把“为什么判为 MAR”的依据固定下来,后续任何人复核都能看到分组差异、回归系数和敏感性结果,而不是一句模糊的“数据是随机缺失的”。

判别之后:机制决定方法

缺失机制不是学术标签,而是方法选择的开关。MCAR 下删除法可接受;MAR 下应优先多重插补或基于似然的方法,并把预测缺失的观测变量纳入模型;MNAR 下常规方法失效,必须借助领域知识设定偏离模型、采用专门模型(如 Heckman、Tobit)或做敏感性分析并如实报告局限。判别的终点不是给出一个机制名称,而是明确“这个结论允许我使用哪种处理方式、以及结论对假设有多敏感”。