能不能用R软件填补缺失数据?

Python018

能不能用R软件填补缺失数据?,第1张

各位大神,谁能给提点一下怎么在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)

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