简体   繁体   English

如何在 r 中合并稳健混合 model 的 MI 置信区间?

[英]how to pool MI confidence intervals of robust mixed model in r?

I can run the rlmer model with the object that results from mice , but when I try to pool the results a get the message Error: No tidy method for objects of class rlmerMod .我可以运行rlmer model 和由mice产生的 object ,但是当我尝试合并结果时,会收到消息Error: No tidy method for objects of class rlmerMod Is there an alternative?有替代方案吗?

Below there is a reproducible example of my data and models:下面是我的数据和模型的可重现示例:

set.seed(1)
library(data.table)
library(robustlmm)
library(mice)
library(miceadds)

dt <- 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) & time == 2, `:=` (x = NA, y = NA)][
          id %in% sample(1:10,4) & time == 3, `:=` (x = NA, y = NA)]
                        
# Multiple imputation -------------------------------------------------------------------

pm <- make.predictorMatrix(dt)
pm[,c('x','y')] <- 0
pm[c('x','y'), 'id'] <- -2
imp <- mice(dt, pred = pm, meth = "2l.pmm", seed = 1, m = 2, print = FALSE, maxit = 20)

# Modelling -----------------------------------------------------------------------------

m <- with(imp, rlmer(y ~ 1 + time * group + sex + (1 | id), REML=F))
pool.fit <- pool(m)

> pool.fit <- 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

Thank you!谢谢!

EDIT:编辑:

As commented by @BenBolker, library(broom.mixed) gets pool.fit to run without errors.正如@BenBolker 所评论的那样, library(broom.mixed)pool.fit可以正常运行。 Hovever, summary(pool.fit,conf.int = TRUE) returns the estimates, but NaN for degrees of freedom, p values and confidence intervals.然而, summary(pool.fit,conf.int = TRUE)返回估计值,但NaN表示自由度、p 值和置信区间。

library(broom.mixed)

pool.fit <- 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

I don't know if another parameter is needed (eg., for defining the df method).我不知道是否需要另一个参数(例如,用于定义 df 方法)。

For now, I tried tbl_regression(m) but it didn't work either:现在,我尝试tbl_regression(m)但它也不起作用:

> tbl_regression(m)
pool_and_tidy_mice(): Tidying mice model with
`mice::pool(x) %>% 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

Any tip?任何提示?

Just load the broom.mixed package, which has tidiers for rlmerMod objects.只需加载broom.mixed package,它有rlmerMod对象的 tidiers。 (The development version of broom.mixed has a get_methods() function: broom.mixed get_methods() function:

remotes::install_github("bbolker/broom.mixed")
library(broom.mixed)
print(get_methods(), n = Inf)
# A tibble: 22 × 4
   class     tidy  glance augment
   <chr>     <lgl> <lgl>  <lgl>  
 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  

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 提取 R 中的稳健标准误差后如何获得置信区间? - How to get confidence intervals after extracting robust standard errors in R? R:具有置信度和预测间隔的三相线性模型的鲁棒非线性最小二乘拟合 - R : Robust nonlinear least squares fitting of three-phase linear model with confidence & prediction intervals 线性混合 model 置信区间问题 - Linear mixed model confidence intervals question 如何获得 R^2 以获得稳健的混合效果 model(rlmer 命令;robustlmm)? - How to obtain R^2 for robust mixed effect model (rlmer command; robustlmm)? R 中的 Function 计算线性回归的异方差稳健置信区间 - Function in R that computes heteroskedasticity-robust confidence intervals for a linear regression 在R — ggplot2中混合模型中的模型预测中添加置信区间? - Adding confidence intervals from model predictions in mixed models in R — ggplot2? R 用稳健的线性回归模型 (rlm) 绘制置信区间线 - R plot confidence interval lines with a robust linear regression model (rlm) 混合模型中估计值的置信区间 - confidence intervals of estimates in mixed models 如何在混合效应模型中获得系数及其置信区间? - How to get coefficients and their confidence intervals in mixed effects models? 如何在R中使用线性回归和置信区间? - How to work with linear regression and confidence intervals in R?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM