我在使用mice对缺失值进行插补后,对纵向数据进行统计分析时遇到了问题。在宽格式中插补缺失值后,我将提取的数据转换为长格式。由于纵向数据的存在,参与者会有重复行(3个时间点),这会在将长格式数据集转换为类型mids对象时导致问题。有人知道如何在插补后创建mids对象或其他合适的对象吗?我想在此之后使用lmer、lme进行汇总固定效应。
我尝试了很多不同的方法,但仍然无法解决问题。
谢谢您的帮助,请查看下面的代码:
谢谢您的帮助,请查看下面的代码:
# minimal reproducible example
## Make up some data
set.seed(2)
# ID Variable, Group, 3 Timepoints outcome measure (X1-X3)
Data <- data.frame(
ID = sort(sample(1:100)),
GROUP = sample(c(0, 1), 100, replace = TRUE),
matrix(sample(c(1:5,NA), 300, replace=T), ncol=3)
)
# install.packages("mice")
library(mice)
# Impute the data in wide format
m.out <- mice(Data, maxit = 5, m = 2, seed = 9, pred=quickpred(Data, mincor = 0.0, exclude = c("ID","GROUP"))) # ignore group here for easiness
# mids object?
is.mids(m.out) # TRUE
# Extract imputed data
imp_data <- complete(m.out, action = "long", include = TRUE)[, -2]
# Converting data into long format
# install.packages("reshape")
library(reshape)
imp_long <- melt(imp_data, id=c(".imp","ID","GROUP"))
# sort data
imp_long <- imp_long[order(imp_long$.imp, imp_long$ID, imp_long$GROUP),]
row.names(imp_long)<-NULL
# save as.mids
as.mids(imp_long,.imp=1, .id=2) # doesnt work
as.mids(imp_long) # doesnt work
Best,
Julian