问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

一种挽救你缺失数据的好方法——多重补插

创作时间:
作者:
@小白创作中心

一种挽救你缺失数据的好方法——多重补插

引用
搜狐
1.
https://www.sohu.com/a/275318909_777125

在医学研究中,数据缺失是一个常见的问题,它可能导致信息损失并影响研究结果的准确性。本文将介绍一种处理缺失数据的有效方法——多重补插(Multiple Imputation, MI),并使用R语言进行具体实现。

缺失数据的分类与处理原则

在医学研究中,数据缺失可能由多种原因造成,如实验设计问题、检测手段精度限制或不可抗力因素等。根据缺失的原因和模式,数据缺失可以分为以下三类:

  • 完全随机缺失(MCAR):数据缺失与观测值和未观测值均无关。
  • 随机缺失(MAR):数据缺失与观测值有关,但与未观测值无关。
  • 非随机缺失(NMAR):数据缺失与未观测值有关。

对于NMAR类型的数据缺失,最好的处理方式是重新设计实验或获取数据。而对于MCAR和MAR类型的数据缺失,可以采用多种补插方法进行处理。当缺失数据量较少(如小于5%)时,可以考虑删除或成对删除的方式;当缺失数据量较多时,则需要采用更复杂的补插方法。

多重补插的基本原理

多重补插(MI)是一种基于模型的补插方法,其核心思想是通过已观测到的值预测缺失值,并在预测值上添加不同的偏差,生成多组可选补插值。具体步骤如下:

  1. 通过已知数值建立插值函数,估计出待插补的值,然后在数值上再加上不同的偏差,形成多组可选插补值,形成多套待评估的完整的数据集;
  2. 对所产生的数据集进行统计分析;
  3. 评价每个数据集的结果,根据模型的评分选择最佳的补插值。

使用R语言实现多重补插

本次分析使用R语言进行。首先加载必要的包并读取数据:

library(mice)
data(nhanes)

数据集nhanes包含四个变量:年龄分组(age)、体重指数(bmi)、是否高血压(hyp)和总胆固醇(chl)。通过VIM包的图形命令可以方便地展示缺失值的数量比例、分布与影响:

从图中可以看出,数据集存在较高的缺失比例,且有多个指标同时缺失的情况,因此不适合使用删除法处理。

数据补插的具体实现

使用mice包进行数据补插:

imp <- mice(nhanes, m = 5, method = "pmm", seed = 500)

其中,m参数表示生成的数据集数目,method参数指定补插方法,这里使用了预测均值匹配(Predictive Mean Matching, PMM)方法。

接下来,对补插后的数据集进行分析:

fit <- with(imp, lm(chl ~ age + bmi + hyp))
pooled_fit <- pool(fit)
summary(pooled_fit)

通过对比补插前后的数据,可以发现补插值(洋红点)与观测值(蓝色点)呈现出相似的分布,表明补插效果良好:

结论

多重补插是一种有效的处理缺失数据的方法,它通过生成多组补插数据并综合分析结果,可以提高数据的完整性和分析的准确性。虽然多重补插能够挽救大量实验数据,但在实际研究中,最好能在数据收集阶段就尽量避免数据缺失。

延伸阅读

  1. How to use multiple imputation for missing data in epidemiological studies: an introductory tutorial
  2. Multiple imputation for missing data in air quality monitoring
  3. Multiple imputation of missing blood pressure measurements in a large epidemiological study
  4. Multiple imputation of missing blood pressure measurements in a large epidemiological study
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号