gpt4 book ai didi

r - MICE 中纵向数据的多重插补和对象类型 mids 的统计分析

转载 作者:行者123 更新时间:2023-12-02 01:35:45 57 4
gpt4 key购买 nike

我在执行纵向数据统计分析时遇到问题使用小鼠对缺失值进行插补。在对广泛的缺失进行估算后数据格式 我将提取的数据转换为长格式。由于纵向数据参与者有重复的行(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

最好,

朱利安

最佳答案

我希望我能用这个小例子来回答你的问题。我真的不明白为什么需要转换回 mids 类。通常,当我使用mice时,我会将估算数据转换为完整数据集的列表,然后使用apply分析该列表。

library(mice)
library(reshape)
library(lme4)

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)
)

# impute
m.out <- mice(Data, pred=quickpred(Data, mincor=0, exclude=c("ID","GROUP")))

# complete
imp.data <- as.list(1:5)
for(i in 1:5){
imp.data[[i]] <- complete(m.out, action=i)
}

# reshape
imp.data <- lapply(imp.data, melt, id=c("ID","GROUP"))

# analyse
imp.fit <- lapply(imp.data, FUN=function(x){
lmer(value ~ as.numeric(variable)+(1|ID), data=x)
})
imp.res <- sapply(imp.fit, fixef)

但是请记住,当您对不同级别上变化的变量关系感兴趣时,单级插补并不是一个好主意。对于这些任务,您应该使用维持两级变化的过程,并且不要像 mice 在此配置中那样抑制它。

对于mice有一些解决方法,但是例如R中的Mplus和pan包是专门为两级MI设计的。

关于r - MICE 中纵向数据的多重插补和对象类型 mids 的统计分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24872668/

57 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com