多重插补(Multiple Imputation, MI)是一种处理缺失数据的统计方法,其主要目标是通过合理估计缺失值,减少缺失数据对分析结果的影响,提高数据分析的准确性和可靠性。
10%以下的缺失:
可通过相对简单的插补方法(如均值插补、最近邻插补等)处理,或直接剔除缺失值也不会对结果产生太大影响。
!!!但如果变量在模型中非常关键,哪怕是少量的缺失(如5%以下),也建议使用多重插补来确保分析的稳健性。
10%-20%的缺失:
简单的插补方法可能不够准确,因为缺失数据的影响可能会较大。
使用多重插补可更好地反映缺失数据的不确定性,减少偏差。
20%-30%的缺失:
缺失数据对结果的影响可能非常显著。若剔除数据会导致样本量大幅减少,可能导致统计效能下降和结果偏差。
多重插补可有效地保留样本量,并减少因缺失数据带来的模型偏差。
30%以上的缺失:
缺失数据对结果的影响可能非常严重。尽管多重插补可以处理高度缺失的数据,但插补结果的可靠性可能会受到影响。
在这种情况下,可能需要更换数据,或在插补时使用更复杂的模型(如基于贝叶斯方法的插补)来尽量减少偏差。
# 安装并加载必要的包install.packages("mice")library(mice)
#查找所需变量 design <- c("qa007_Biomarker_2015","qa011_Biomarker_2015","qa008_Biomarker_2015","qa012_Biomarker_2015")column_names <- c("qa007","qa011","qa008", "qa012")# 获取所需变量charls_data <- charlsMAX::fetch_CHARLS_data(design, merge_method ="inner",column_names)%>% transmute(ID, sbp1 = ifelse(qa007>300,NA,qa007), sbp2 = ifelse(qa011>300,NA,qa011), dbp1 = ifelse(qa008>150,NA,qa008), dbp2 = ifelse(qa012>150,NA,qa012), sbp_follow=(sbp1+sbp2)/2, dbp_follow=(dbp1+dbp2)/2 )%>% select(-(sbp1:dbp2))
#①默认情况下,mice会使用预测模型(pmm)进行插补
imputed_data <- mice(charls_data, m = 5,
method = 'pmm', seed = 123)
#m = 5参数指定了生成5组插补数据
#method = 'pmm'指定了使用预测模型进行插补
#seed = 123是为了确保结果的可重复性
#②查看插补后的数据
completed_data <- complete(imputed_data, 1)
#选择第一组插补数据进行分析
#③查看插补的详细信息
summary(imputed_data)
##④如果需要,可以将插补后的数据导出到CSV文件
write.csv(completed_data, "imputed_charls_data.csv", row.names = FALSE)
charlsMAX R包是什么?
charlsMAX 0.2.1 R包有哪些功能?
深夜答疑,24h并肩作战
charlsMAX R包如何购买?
购买多国健康数据库精析与挖掘课程即送charlsMAX R包,并配有常规学习代码、文章实操复现等视频学习内容(永久观看) 另有服务:社群答疑(永久)、1v1选题 审稿 投稿推荐 返修指导服务(2年) 价格:3999,学生3799(包含税,可开发票)
福利来咯!
课程咨询微信
课程购买链接
期待你的
分享
点赞
在看