R语言高级方法进行缺失数据多重插补案例演示

Python024

R语言高级方法进行缺失数据多重插补案例演示,第1张

当我们在数据集中缺少值时,重要的是考虑为什么它们会丢失以及它们对分析的影响。有时忽略丢失的数据会降低功耗,但更重要的是,有时它会使答案有偏差,并有可能误导错误的结论。因此,重要的是要考虑丢失的数据机制是什么,以便对其进行处理。 Rubin(1976)区分了三种类型的误报机制:

各位大神,谁能给提点一下怎么在R语言中实现缺失值的处理,不是简单地删除,而是用其他的方法进行填补,数据集为一excel数据,大约1000条数据的样子。求问啊,再网上找了下,把网上的方法粘在这里吧,不过貌似不太对,用不了。求问各路大仙还有没有其他的方法?谢谢啦,急用!网上方法如下:

三、处理缺失数据

删除缺失数据样本,其前提是缺失数据的比例较少,而且缺失数据是随机出现的,这样删除缺失数据后对分析结果影响不大。

用变量均值或中位数来代替缺失值,其优点在于不会减少样本信息,处理简单。但是缺点在于当缺失数据不是随机出现时会产成偏误。

多重插补法(Multiple imputation):多重插补是通过变量间关系来预测缺失数据,利用蒙特卡罗方法生成多个完整数据集,再对这些数据集分别进行分析,最后对这些分析结果进行汇总处理。在R语言中实现方法是使用mice包中的mice函数,生成多个完整数据集存在imp中,再对imp进行线性回归,最后用pool函数对回归结果进行汇总。汇总结果的前面部分和普通回归结果相似,nmis表示了变量中的缺失数据个数,fmi表示fraction of missing information,即由缺失数据贡献的变异。

----------------------

library(mice)

imp=mice(sleep,seed=1234)

fit=with(imp,lm(Dream~Span+Gest))

pooled=pool(fit)

summary(pooled)

我们在临床做回顾性研究分析中经常要面对数据缺失的问题,如果数据缺失量大就会对我们的研究结果产生影响,近年来,对数据进行多重插补广泛应用于SCI论文中。我们在之前的文章中已经演示了使用SPSS对数据进行多重插补并分析。今天,我们通过使用R语言的Mice包来演示多重插补并对数据进行分析。

我们使用R语言survival包自带的mgus数据集来进行演示

先把数据导入

library(survival)

library(rms)

data(package=“survival”)

data(“mgus”)

head(mgus)

bc<-mgus