多重插补、lmer和汇总ggeffects对象。

3
我使用lme4::lmer()计算了线性混合效应模型,该模型在使用mice包进行多重插补处理后得出。对于这些lmer对象,我想应用ggeffects::ggeffect()获取边际效应,并为平均值、+1sd和-1sd绘制图形。
对于lm对象,pool_predictions函数似乎非常适合并能够很好地工作;然而,对于lmer对象,ggeffect()函数不起作用。由于某种原因,ggpredict()工作,但我想获取的是边际效应,而不是条件效应。
以下是我从pool_predictions()参考中修改的最小可重现示例(混合模型没有意义,仅用于创建示例):
if (!require("pacman")) install.packages("pacman")
pacman::p_load(mice,stats,lme4,ggeffects)
  data("nhanes2")

#First, the working example from the pool_predictions() reference, using an lm object and ggpredict():

  imp <- mice(nhanes2, printFlag = FALSE)
  predictions1 <- lapply(1:5, function(i) {
    m1 <- lm(bmi ~ age + hyp + chl, data = complete(imp, action = i))
    ggpredict(m1, "age")
  })
  pool_predictions(predictions1)

#Now the same example, but using ggeffect() on the lm object, which also works:

  predictions2 <- lapply(1:5, function(i) {
    m2 <- lm(bmi ~ age + hyp + chl, data = complete(imp, action = i))
    ggeffect(m2, "age")
  })
  pool_predictions(predictions2)


#It also seems to work for lmer objects, at least when using ggpredict():
    
    predictions3 <- lapply(1:5, function(i) {
        m3 <- lmer(bmi ~ age + chl + (1|hyp), data = complete(imp, action = i))
        ggpredict(m3, "age")
    })
    pool_predictions(predictions3)
    
#But when I use ggeffect() instead of ggpredict(), this doesn't work anymore for lmer objects.


  predictions4 <- lapply(1:5, function(i) {
    m4 <- lmer(bmi ~ age + chl + (1|hyp), data = complete(imp, action = i))
    ggeffect(m4, "age")
  })
  pool_predictions(predictions4)

有人知道为什么会出现这种情况吗?或者有什么提示可以让我获取我的lmer对象的池化边际效应吗?

非常感谢!

安特耶

1个回答

0

我认为这可能是由于从环境中检索数据的方式导致的,这对于ggeffect()(基于effects包)失败了。您可以尝试使用ggemmeans()代替,它应该会给您与ggeffect()相同的结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接