мыши: расщепление вмененных данных для дальнейшего анализа - PullRequest
0 голосов
/ 26 октября 2018

Я использую пакет мышей (версия 3.3.0) для выполнения нескольких импутаций (MI).Процедура МИ работает нормально.Для дальнейшего анализа я хотел бы разделить / разделить / установить подмножество вмененных данных переменной 'group', как указано в примере ниже.

library(mice)

d <- nhanes
d$group <- as.factor(c(rep("A", 13), rep("B", 12)))
str(d)

imp <- mice(d)

fit <- with(imp, lm(bmi ~ age + chl + group))
est <- pool(fit)
summary(est, digits=3)

# I would like to do is
imp.A <- imp[which(group=="A")]
imp.B <- imp[which(group=="B")]

fit.A <- with(imp.A, lm(bmi ~ age + chl))
fit.B <- with(imp.A, lm(bmi ~ age + chl))

Можно ли как-то разделить вмененные данные?

1 Ответ

0 голосов
/ 29 октября 2018

Я думаю, что этот код может быть использован для достижения того, что вы просите

Сначала создайте длинную версию всех наборов данных:

d.long <- mice::complete(imp,"long",include = T)

Затем выполните группировку как обычно, используяbase R

d.long.A <- d.long[which(d.long$group == 'A'),]
d.long.B <- d.long[which(d.long$group == 'B'),]

Затем измените их обратно на mids объекты, чтобы вы могли выполнять mice операций

imp.A <- as.mids(d.long.A)
imp.B <- as.mids(d.long.B)

Вы, вероятно, получите предупреждение, потому что группа сейчасконстанта.

Warning message:
Number of logged events: 1
imp.A$loggedEvents
  it im dep     meth      out
1  0  0     constant group

Но это не должно быть проблемой, просто mice говорит вам, что в вашем наборе данных есть постоянное значение.Наконец, вы можете использовать ваши новые подмножества для своих моделей регрессии

fit.A <- with(imp.A, lm(bmi ~ age + chl))
fit.B <- with(imp.B, lm(bmi ~ age + chl))

, используйте pool для получения объединенных результатов.Я не совсем уверен, почему вы хотите сделать это вместо того, чтобы просто включить групповую переменную в вашу модель регрессии, но я предполагаю, что у вас есть причина для этого.Надеюсь, это поможет!

...