как объединить доверительные интервалы MI надежной смешанной модели в r?

#r #mixed-models #r-mice #robust

#r #смешанные модели #r-мыши #крепкий

Вопрос:

Я могу запустить rlmer модель с объектом , который является результатом mice , но когда я пытаюсь объединить результаты, я получаю сообщение Error: No tidy method for objects of class rlmerMod . Есть ли альтернатива?

Ниже приведен воспроизводимый пример моих данных и моделей:

 set.seed(1) library(data.table) library(robustlmm) library(mice) library(miceadds)  dt lt;- data.table(id = rep(1:10, each=3),   group = rep(1:2, each=15),  time = rep(1:3, 10),  sex = rep(sample(c("F","M"),10,replace=T), each=3),  x = rnorm(30),  y = rnorm(30))  setDT(dt)[id %in% sample(1:10,4) amp; time == 2, `:=` (x = NA, y = NA)][  id %in% sample(1:10,4) amp; time == 3, `:=` (x = NA, y = NA)]   # Multiple imputation -------------------------------------------------------------------  pm lt;- make.predictorMatrix(dt) pm[,c('x','y')] lt;- 0 pm[c('x','y'), 'id'] lt;- -2 imp lt;- mice(dt, pred = pm, meth = "2l.pmm", seed = 1, m = 2, print = FALSE, maxit = 20)  # Modelling -----------------------------------------------------------------------------  m lt;- with(imp, rlmer(y ~ 1   time * group   sex   (1 | id), REML=F)) pool.fit lt;- pool(m)  gt; pool.fit lt;- pool(m) Error: No tidy method for objects of class rlmerMod In addition: Warning message: In get.dfcom(object, dfcom) : Infinite sample size assumed. # I don't get this warning using my real data  

Спасибо!

Редактировать:

Как прокомментировал @BenBolker, library(broom.mixed) pool.fit запускается без ошибок. Тем не менее, summary(pool.fit,conf.int = TRUE) возвращает оценки, но NaN для степеней свободы, значений p и доверительных интервалов.

 library(broom.mixed)  pool.fit lt;- pool(m) summary(pool.fit,conf.int = TRUE)   term estimate std.error statistic df p.value 2.5 % 97.5 % 1 (Intercept) -1.31638288 1.2221584 -1.07709683 NaN NaN NaN NaN 2 time 0.02819273 0.4734632 0.05954578 NaN NaN NaN NaN 3 group 1.49581955 0.8776475 1.70435124 NaN NaN NaN NaN 4 sexM -0.61383469 0.7137998 -0.85995356 NaN NaN NaN NaN 5 time:group -0.25690287 0.3005254 -0.85484573 NaN NaN NaN NaN  

Я не знаю, нужен ли другой параметр (например, для определения метода df).

На данный момент я пытался tbl_regression(m) , но это тоже не сработало:

 gt; tbl_regression(m) pool_and_tidy_mice(): Tidying mice model with `mice::pool(x) %gt;% mice::tidy(exponentiate = FALSE, conf.int = TRUE, conf.level = 0.95)` Error in match.call() : ... used in a situation where it does not exist # how to correct this? In addition: Warning message: In get.dfcom(object, dfcom) : Infinite sample size assumed. # again, this warning don't occur with my original data  

Есть какие-нибудь наводки?

Комментарии:

1. Хм, я получаю разные ответы (а не NaN ценности). От sessionInfo() , у меня есть broom.mixed_0.2.8 miceadds_3.11-6 mice_3.14.0 robustlmm_2.4-5 lme4_1.1-27.1 Matrix_1.3-4 data.table_1.14.2

2. Я обновил R и пакеты, и теперь я получаю всю информацию summary() . Оценки также отличаются от опубликованных ранее (конечно, моя ошибка с set.seed). Например, сейчас я получаю -0.0248 за (Intercept) . Спасибо @BenBolker

3. Хорошо, если мой ответ решит вашу проблему, то вам рекомендуется нажать на галочку, чтобы принять его …

Ответ №1:

Просто загрузите broom.mixed пакет, в котором есть очистители для rlmerMod объектов. (Версия разработки broom.mixed имеет get_methods() функцию:

 remotes::install_github("bbolker/broom.mixed") library(broom.mixed) print(get_methods(), n = Inf)  
 # A tibble: 22 × 4  class tidy glance augment  lt;chrgt; lt;lglgt; lt;lglgt; lt;lglgt;   1 allFit TRUE TRUE FALSE   2 brmsfit TRUE TRUE TRUE   3 gamlss TRUE TRUE FALSE   4 gamm4 TRUE TRUE TRUE   5 glmmadmb TRUE TRUE TRUE   6 glmmTMB TRUE TRUE TRUE   7 gls TRUE TRUE TRUE   8 lme TRUE TRUE TRUE   9 lmList4 TRUE FALSE FALSE  10 mcmc TRUE FALSE FALSE  11 mcmc.list TRUE FALSE FALSE  12 MCMCglmm TRUE FALSE FALSE  13 merMod TRUE TRUE TRUE  14 MixMod TRUE FALSE FALSE  15 ranef.mer FALSE FALSE TRUE  16 rjags TRUE FALSE FALSE  17 rlmerMod TRUE FALSE FALSE  18 stanfit TRUE FALSE FALSE  19 stanreg TRUE TRUE FALSE  20 TMB TRUE FALSE FALSE  21 varComb TRUE FALSE FALSE  22 varFunc TRUE FALSE FALSE   

Комментарии:

1. Спасибо @BenBolker! Это действительно работает, но summary(pool.fit,conf.int = TRUE) возвращает NaN значения df, p.и доверительные интервалы. Нужно ли мне добавлять дополнительные параметры в функцию?

2. Я проверю …..