3. 缺失机制:MCAR、MAR、MNAR 的定义与区别
聊模态缺失,不能光知道「缺了数据」就完了。你得搞清楚——数据是怎么缺的?
我早年做医疗影像项目时,就踩过这个坑。当时 CT 和 MRI 两个模态,有一批样本的 MRI 全空。我心想「直接删掉算了」,结果模型在测试集上直接崩了。后来复盘才发现——缺失机制没搞明白,处理策略全白搭。
学术界把缺失机制分成三类:MCAR、MAR、MNAR。这三兄弟,决定了你该用哪种补全策略。
3.1 完全随机缺失(MCAR)
定义:数据缺失的概率与观测值、缺失值本身都无关。
说白了,就是「纯运气不好」。比如传感器突然断电、网络丢包、被试者不小心按错了按钮。缺失完全是随机的,跟数据本身没有任何关系。
数学表达:P(缺失 | X, Y) = P(缺失),常数概率。
缺失与否,跟数据值无关。
我个人的经验:MCAR 在实际项目中其实很少见。大部分「看起来随机」的缺失,仔细一查都有隐藏规律。比如某个传感器只在高温下失效——那就不是 MCAR。
| 特征 | 说明 |
|---|---|
| 缺失原因 | 设备故障、人为误操作、随机事件 |
| 对分布影响 | 不影响数据分布,可视为子样本 |
| 处理难度 | 最低,直接删除或简单插补即可 |
| 典型场景 | 实验室环境、受控实验 |
小技巧:判断是否 MCAR,可以用 Little's MCAR 检验。p 值大于 0.05,可以勉强接受 MCAR 假设。但别太信这个检验——样本量大时它太敏感,样本量小时它又没力。
3.2 随机缺失(MAR)
定义:数据缺失的概率依赖于其他已观测变量,但与缺失值本身无关。
举个例子:在问卷调查中,收入高的人更不愿意填收入项。但「是否缺失收入」跟「已填写的教育水平」相关。缺失的概率由已观测变量决定。
数学表达:P(缺失 | X_obs, X_mis) = P(缺失 | X_obs)
缺失概率只依赖已观测部分。
我遇到过的情况:做多模态情感识别时,音频模态经常缺失——但只在视频质量差的时候。也就是说,缺失跟「视频帧清晰度」这个已观测变量相关。这就是典型的 MAR。
MAR 是实际项目中最常见的缺失机制。大概占我遇到过的缺失案例的 60%-70%。
| 特征 | 说明 |
|---|---|
| 缺失原因 | 由其他已观测变量驱动 |
| 对分布影响 | 条件分布不变,边缘分布改变 |
| 处理难度 | 中等,需利用观测变量建模 |
| 典型场景 | 问卷调查、传感器部分失效 |
注意:MAR 假设下,如果缺失模型被正确指定,基于似然的处理方法(如 EM 算法、多重插补)可以得到无偏估计。但如果你忽略了缺失依赖的变量,结果就会偏。
3.3 非随机缺失(MNAR)
定义:数据缺失的概率依赖于缺失值本身。
这是最棘手的情况。比如:
- 收入极高的人故意不填收入——缺失跟「高收入」这个未观测值相关
- 病情严重的患者退出临床试验——缺失跟「病情恶化」相关
- 传感器在测量值超出量程时失效——缺失跟「极端值」相关
数学表达:P(缺失 | X_obs, X_mis) 依赖于 X_mis 本身
缺失概率跟缺失值的大小有关。
我曾经踩过的坑:做金融风控时,用户资产数据大量缺失。我一开始按 MAR 处理,用其他特征插补。结果模型在高端客户群体上完全失效——因为资产越高的用户,越倾向于不填资产信息。这就是 MNAR,插补模型根本学不到真实分布。
| 特征 | 说明 |
|---|---|
| 缺失原因 | 由缺失值本身驱动 |
| 对分布影响 | 严重偏倚,无法直接恢复 |
| 处理难度 | 最高,需引入外部信息或敏感性分析 |
| 典型场景 | 敏感信息、极端值、退出偏倚 |
3.4 三种机制对比
我把它们放在一起对比,你一眼就能看出区别:
| 维度 | MCAR | MAR | MNAR |
|---|---|---|---|
| 缺失概率依赖 | 无 | 已观测变量 | 缺失值本身 |
| 可忽略性 | 可忽略 | 可忽略(条件) | 不可忽略 |
| 删除法是否无偏 | 是 | 否 | 否 |
| 插补难度 | 低 | 中 | 高 |
| 是否需要领域知识 | 不需要 | 部分需要 | 强烈需要 |
| 实际出现频率 | 低(~10%) | 高(~65%) | 中(~25%) |
我的建议:拿到数据后,先别急着补全。花时间分析缺失模式——画缺失热力图、做缺失变量与观测变量的相关性检验。很多时候,缺失机制本身就能告诉你数据质量问题的根源。
3.5 缺失机制与模态缺失的关系
在多模态场景下,缺失机制会变得更复杂。因为不同模态之间可能存在交叉依赖。
举个例子:
- MCAR:摄像头被遮挡,导致视频帧随机丢失
- MAR:在嘈杂环境中,音频质量差导致语音识别失败——缺失依赖于「环境噪声」这个已观测变量
- MNAR:当用户表情极度负面时,他们倾向于转头避开摄像头——缺失跟「负面表情」这个未观测值相关
嗯,这里要注意:模态缺失往往不是单一机制。同一个数据集里,可能同时存在 MCAR、MAR、MNAR 的混合情况。比如某个模态在某些样本上是 MCAR,在其他样本上是 MAR。
下面这张图,帮你理清三种缺失机制的核心逻辑:
3.6 如何判断缺失机制?
说实话,从数据本身严格区分 MCAR、MAR、MNAR 并不容易。因为 MNAR 涉及未观测值,你永远无法完全验证。
但我有一些实用经验:
- 先做可视化分析:画缺失热力图,看缺失是否集中在某些特征或样本上
- 分组对比:把样本按「是否缺失」分组,比较其他特征的分布差异
- 逻辑推理:结合业务场景思考——缺失是否可能跟未观测因素有关?
- 敏感性分析:假设不同的缺失机制,看模型结果是否稳健
避坑指南:我曾经在项目里默认所有缺失都是 MAR,结果模型上线后效果远差于预期。后来发现是 MNAR——缺失值本身就有信息量。所以,永远不要默认缺失机制。花时间分析,比花时间调参更重要。