简介:介绍r医学数据分析常用数据插补方法(持续更新ing)
所用R包:mice
多重插补mice包使用详解
library(openxlsx) #读取数据
library(tidyverse)#数据处理
library(mice)#多重插补
#数据处理
data <- read.csv("C:/Users/99405/Desktop/aa.xlsx")
data1 <- data %>% select() #提取所需插补的数据集
skim(data1)#查看数据情况
variables <-colnames(data)[2:3]data1 <- data1 %>% mutate(across(any_of(variables),factor))#批量设置因子型变量
variables <-c("a11","a12","a13")
data1 <- data1 %>% mutate(across(any_of(variables),ordered))#批量设置有序因子变量
#选择方法进行多重插补
#参数注释
#m=设置要生成的数据集个数(默认为5),
#method=设置填补方法(默认为pmm,logreg,polyreg,polr软件自动识别变量类型后选择相应的方法),可设置一种方法或对每一个变量都设置一种方法
#maxit = 设置迭代次数(默认为5)
#设置单一插补方法
t1 <- mice(data1,method="pmm")
#查看结果和预测方法
t1$predictorMatrix #查看预测变量矩阵
t1$method #查看预测方法,完整变量为空
t1$imp$a4 #查看某个变量的填补情况
#用默认方法插补
t1 <- mice(data1)
#详细设置预测变量
predictor_matrix <- t1$predictorMatrix#提取原始默认预测矩阵
predictor_matrix[,c("职业","年龄")] <- 0 #设置变量a26不做为预测变量
t2 <- mice(data1,predictorMatrix=predictor_matrix)
#用action=选取某个数据集
compdata <- complete(t1,action=2)
#缺失值插补可视化
stripplot(compdata,a5~.imp,pch=20,cex=2)#查看bmi插补效果
#提取所需要填充的变量和原数据剩余变量组成新数据集
#使用了左连接语法
cpdata<- merge(compdata[,1:25],data[,c(1,26:51)],all.x = TRUE,by="a1")
#导出数据为xlsx
write.xlsx(cpdata,file="C:/Users/99405/Desktop/插补后数据.xlsx")