R 语言:缺失数据的多重插补
R 语言:缺失数据的多重插补

多重插补 (Mutiple Imputation, MI) 是一种应对无反应误差 (nonresponse bias) 的方法,即当人们无法对调查做出回应时,会丢失研究数据。将创建同一数据集的多个版本,然后将其组合以形成“最佳”值。
临床资料的收集过程中,很难收到完美的数据。对于缺失数据,删除相应的病人或者相应的变量是一种备择方案,但是缺点显而易见。因而,用多重插补方法来填补缺失数据就比较适合。
多重插补通过计算几个不同的选项来缩小关于缺失值的不确定性。 将创建同一数据集的多个版本,然后将其组合以形成最佳值。
代码如下:
生成 5 份插补数据,历遍 5 次
# 加载包
library('mice')
# 导入csv文件
data <- read.csv('origin.csv', sep=',', header=TRUE)
# 插补 这里要比较久
imputed_Data <- mice(data, seed=826, method='pmm') # 默认 m=5, maxit=50
# 提取插补完成的数据
completeData <- list()
for (i in 1:5){
completeData[i] <- mice::complete(imputed_Data, i)
}
# 写入文件
for (i in 1:5){
write.csv(completeData[i], paste('completeData', i, '.csv',sep=''), row.names=FALSE)
}
生成 1 份插补数据,历遍 20 次
# 加载包
library('mice')
# 导入csv文件
data <- read.csv('origin.csv', sep=',', header=TRUE)
# 插补 这里要比较久
imputed_Data <- mice(data, seed=826, method='pmm', m=1, maxit=20)
# 提取插补完成的数据
completeData <- mice::complete(imputed_Data, 1)
# 写入文件
write.csv(completeData, 'completeData.csv', row.names=FALSE)
评论