☰
R数据分布过于偏态,不能使用多重插补怎么办?使用sciimp函数进行随机森林插补
2026/10/28 2:17:21 网站建设 项目流程

咱们在数据分析的时候,经常要面对数据中存在缺失值的情况,咱们通常会使用mice包进行多重插补,但是mice包插补通常是建立在线性或者回归模型上的,这个就要求你的数据正态分布或者近似正态分布,如果你的数据偏态分布太厉害,有可能会插补不成功。


最近有粉丝提问说数据插补不成功,如上图所示,主要是数据偏态分布太严重了,我来演示一下
先导入数据和R包

library(survival)library(scitable)library(mice)setwd("E:/公众号文章2026年/多重插补插补不了怎么办")data<-read.csv("data.csv",sep=',',header=TRUE)


咱们可以看到,数据有很多缺失值的,先整理数据,主要是把分类变量转成因子,这步没什么特别

out<-organizedata2(data=data,username=username,token=token,explore=T)data<-out[["data"]]

咱们常规使用mice包差补一下看看

impdata<-mice::mice(data,m=5,maxit=5,seed=123)


这种报错就本上就是数据分布问题,导致建模不成功了,这个时候咱们可以使用scitable包的sciimp函数进行随机森林插补

使用起来非常简单,把数据放进去,在methods这里改成methods = “randomForest”,因为它默认的是多重插补

out<-sciimp(data,username=username,token=token,methods="randomForest")

这样随机森林插补就完成,咱们把数据提取出来

dataimp<-out[["impdata"]][["ximp"]]


咱们可以看到,缺失值已经全部被插补成功了,咱们还可以绘制插补前和插补后的数据分布,应对审稿人提问



本期结束

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询