(1)理论介绍
(2)实践操作
世界卫,精神卫生是指一种健康状态,在这种状态中,每个人都能够认识到自身潜力,能够适应正常的生活压力,能够有成效地工作,并能够为其居住的社区做出贡献。
1.理论介绍
在多重插补中,采用回归模型预测法是直接以回归预测值为插补值,而预测平均值匹配法与回归模型预测法类似,但并不是直接以预测值进行填补的,而是根据回归系数估计值的后验分布中随机抽取N个参数,用这些新的参数再计算出预测值。
参考文献:多重填补法在公共卫生调查研究中的应用
预测平均值匹配法一般是适用于连续变量,但我在查看了mice包的帮助文档后,发现这种方法适用于任何数据,如下所示:
2.实践操作
对ms2013里面的缺失数据采用mice包的pmm进行填补,由于适用于任何数据类型,就不用转变为因子了
填补数据的整个流程有以下6步:
l第一步:导入数据
l第二步:查看数据集变量缺失情况
l第三步:mice函数填补数据
l第四步:查看填补的数据与原始数据是否比较类似
l第五步:填补后5个数据库按众数进行提取形成最终的数据库
l第六步:导出数据: 加载writexl包
#导入数据
.libPaths()#查看R包位置
.libPaths("D:/Program File/R/R-4.3.2/library")#定义包安装位置
setwd("E:/02学习/经验/03R语言图形绘制/18R语言进行多重插补合集")#设置工作空间
getwd()#加载工作空间
#下载所需要的包
install.packages("mice")
install.packages("ranger")
install.packages("writexl")
library(lattice) #调入函数包
library(MASS)
library(nnet)
library(mice) #前三个包是mice的基础
library(foreign)
library(ranger)
#第一步:导入数据
data1<-read.csv("ms2013.csv",
as.is = TRUE,header = T,sep = ",", fileEncoding='utf-8')
str(data1)
#第二步:查看数据集变量缺失情况
p1<-md.pattern(data1)
这个图怎么看呢?红色代表缺失,蓝色代表未缺失,分两步看
(1)上和下:代表的是每个变量缺失几个,如零食爱好缺失218个观测
(2)左右:代表有多少观测缺失了哪几个变量;比如,613个观测是完整的,没有缺失;
5个观测仅缺失了吸烟年龄这个变量;126个观测缺失了零食爱好到吸烟年龄这四个变量。
#第三步:mice函数填补数据
x<-mice(data1,
m=5,#插补几个数据集,默认5
seed=10,#随机化种子数,保障每次插补的一样
method = "pmm")#选择方法
x$method#查看每个变量所用的插补方法
x$imp#查看填补结果
可以看到,采用的都是pmm法
#第四步:填补后查看插补的结果
#蓝色是原始数据,红色是插补的数据
stripplot(x,pch=19,cex=1.2,alpha=.3)
#局限性是只能查看数值型的变量,对于因子变量无法查看
可以看到,吸烟年龄到饮酒频率进行了插补,且红色的插补数据,可以看到5个数据集和原始数据集的分布基本一致,说明pmm法插补的效果可以的。
#第五步:插补数据的选择
那么,插补的数据集,如何使用,这里我给出以下3个建议:
(1)选择其中1个数据集,作为最终插补的数据集
x1<-complete(x,action=01)
x2<-complete(x,action=02)
x3<-complete(x,action=03)
x4<-complete(x,action=04)
x5<-complete(x,action=05)
(2)可以将5个数据集合并,根据插补的5个数据集的变量求缺失值或者众数,形成最终的数据集。代码自行研究
(3)直接采用5个数据集进行回归分析,然后采用最终的汇总结果
fit<-with(x,glm(MS~吸烟年龄+是否吸烟+零食爱好+饮酒频率,family = binomial))
fit
#统计分析结果汇总
fit<-pool(fit)
summary(fit)
如下:这里就给出了5个数据集变量的汇总结果。
但是这种方法我认为有两点局限性:
(1)我们在一开始插补前要把所有变量放过来,但是实际上操作中,我们往往只是需要插补几个变量,然后数据集可能有上百变量
(2)如果采用5个数据集汇总的结果,因为插补的数据结果是保存在列表中了,不是数据框了,所以没办法转化数据格式了。比如上面的结果明显自变量全是数值变量
综上,我比较推荐第一种和第二种方法,为什么第一种也可以呢?我们可以结合第四步插补结果图,然后选择与原始数据插补比较符合的,如果5个数据集插补都比较符合,那就随便选择其中一个,也就是我们依据图形结果进行主观判断,这样,就算审稿人提出疑问,也能说明。
本公众号致力于分享实用的医学科研干货和热点科研文章共享平台,如果您有任何医学科研相关问题或经验分享,可以私信我!
谢谢阅读,以上均为个人在科研实践过程中的一些做法,如有错误敬请指正!!!
End
关注我获得
更多精彩