当前位置: 首页 > news >正文

用R包mice进行多重插补

利用R包mice实现的链式方程多重插补方法来插补缺失的数据。

所有多重插补方法都遵循三个步骤

插补——与单次插补类似,对缺失值进行插补。但是,插补值会从分布中提取m次,而不是仅提取一次。此步骤结束时,应该有m 个完整的数据集。
分析——对m个数据集进行逐一分析。此步骤结束时,应该有m个分析结果。
池化——通过计算关注变量的平均值、方差和置信区间,或组合各个独立模型的模拟结果,将m个结果合并为一个结果。

为什么要多重插补?

单次插补直接用某种方法填补缺失值,得到一个完整数据集,但忽略了插补值本身存在的不确定性,会低估标准误,导致统计推断过于乐观。

多重插补通过多次(比如5次、10次)插补,生成多个完整数据集,反映了缺失值可能的多种合理取值,从而考虑了插补的不确定性。

链式方程多重插补(MICE)怎么做?

先对所有变量的缺失值初始化(比如用均值或随机值填充),得到一个初步完整数据集。

逐个变量进行迭代插补,比如第1个变量的缺失值用其它变量的当前完整值建立回归模型预测(如线性回归、逻辑回归、PMM等),插补预测值(加上随机扰动)。

依次对第2个、第3个…变量做类似操作,每一轮完成一遍所有变量的插补。

这个过程迭代多次(比如20次),模型逐渐稳定。

每一次迭代的最终结果就是一个完整数据集,重复m次(默认5次)得到多个完整数据集。

随机性的来源在哪里?

每次变量插补时,不是简单用回归预测值,而是用带随机误差的预测值,比如PMM(预测均值匹配)会随机从训练样本中选取一个类似的真实值来填补。

这种“随机扰动”保证了插补值的多样性,使得多组插补结果反映了缺失值潜在的真实变异。

同时,在初始化、模型拟合、抽样步骤中都会引入随机性,保证不同插补数据集的差异。

什么是 PMM(预测均值匹配)?

在 MICE 多重插补中,PMM 是一种常用的插补方法,它不直接使用回归预测值,而是找一个“相似的人”来“借值”填补缺失。
例子
假设你现在有个变量是认知分数(比如“记忆得分”),有些人没填。
你要为“小明”插补一个记忆得分,他的其它信息是:
年龄:40
教育年限:16年
BMI:23
其他认知指标:都正常

你用这些变量训练了一个回归模型来预测“记忆得分”。
回归模型告诉你:“小明的记忆得分大概是 78.3”。
但你不会直接填 78.3。
PMM 怎么做呢?
找到所有“非缺失者”(有真实记忆得分的人),用同一个模型去预测他们的得分。
得到每个人的“预测得分”和他们的真实得分(比如:预测=78.0,真实=80)。
从中选出预测得分最接近 78.3 的几个“邻居”(通常是5个)。
从这几个邻居的“真实得分”中随机抽一个来给小明用,比如抽到的是“80”,那小明就插补为 80。

所以随机来自:

  1. “邻居”中随机选一个真实值填进去;
  2. 整个插补过程本身也有随机扰动(不同种子、初始化方式);
    插补每个数据集时都独立进行,因此你得到了5个(默认)不完全一样的版本。

分别对5个数据集进行了检验,并应用Rubin规则汇集了5个数据集中的参数估计值。

参考:
https://en.wikipedia.org/wiki/Imputation_(statistics)

相关文章:

  • Git安装全攻略:避坑指南与最佳实践
  • Bugku——WEB篇(持续更新ing)
  • 代理模式 - Flutter中的智能替身,掌控对象访问的每一道关卡!
  • JavaScript中的回调函数详解
  • Springboot 集成 SpringBatch 批处理组件
  • 软件著作权人的权利
  • 【系统分析师】高分论文:论软件开发模型及应用
  • GitHub vs GitLab 全面对比报告(2025版)
  • 大模型小模型选型手册:开源闭源、国内国外全方位对比
  • Vulkan 学习(18)---- 使用 ValidationLayer
  • Function Calling与MCP的区别
  • python训练day44 预训练模型
  • Windows系统安装鸿蒙模拟器
  • 原型设计Axure RP网盘资源下载与安装教程共享
  • wpf的Binding之UpdateSourceTrigger
  • Go语言--语法基础6--基本数据类型--数组类型(2)
  • MATLAB GUI界面设计 第七章——高级应用
  • 领域驱动设计(DDD)【26】之CQRS模式初探
  • 大语言模型训练阶段
  • Tang Prime 20K板OV2640例程