>library(lattice) #调入函数包
> library(MASS)
> library(nnet)
> library(mice) #前三个包是mice的基础
> library(openxlsx)#书写xlsx的包
>data <- read_excel("E://ACT.xlsx", sheet = 1)#读取数据
#插补数据,data是需要插补的数据集,m是插补5次,method使用的方法是pmm,seed是随机种子,print=FALSE是结果不打印
> imputed_Data <- mice(data, m=5, maxit = 50, method = 'pmm', seed = 500,print=FALSE)
#在fit时需要注意:lm是线性模型,result(结局变量),~之后的是自变量,自变量命名时不得有空格,“-”等特殊符号,这里需要将所有的自变量都纳入
> fit=with(imputed_Data,lm(result ~ age + nation + height + weight + BMI + BSA + classification +TNM +transfer + underlyingdisease + cycle + GCSF + therapyleukocyte + Hemoglobin + Platelet + Neutrophils + Whiteblood + Hemoglobinafter + Plateletafter + Neutrophilsafter + erythrocyte + HCT+ MCV + PDW + ALC + MONO + TBLT + DBLT + TP + ALB + AG + ALT + AST + BUN + SCR + UA + LDH + PT+ PTA + INR + FIB +APTT + DDimer + CEA + Ca125 + Ca153))
#将5次插补的数据进行整合后查看,如何选择插补后的数据集,我是根据AIC和BIC值进行选择的,两个越小越好,其实应该使用5次数据集整合的结果,但由于我需要数据进行下一步的分析
> summary(fit,type="glance")
> pooled<-pool(fit)#整和插补数据
> summary(pooled)#查看插补数据情况
> bwplot(impt)#画箱式图看插补的效果
> densityplot(impt)#画密度图,看插补后数据的分布
> stripplot(imputed_Data, col=c("grey",mdc(2)),pch=c(1,20)) #画插补后数据的点状图
> completeData <- complete(imputed_Data,5)#补全数据,此处的5表示选择第五次的插补数据进行补全
> write.xlsx(completeData, "E://completeData.xlsx", sheetName = "Sheet1", rowNames = FALSE)#将完整数据保存在指定的路径
- mice() 多重插补
- with() 分析完整数据集
- pool() 整合数据
- complete() 输出插补完的数据集
- imputed_Dat$imp #查看插补数据集
- install.packages("plm") #安装包