首页 文章

如何在混合效果模型中获得系数及其置信区间?

提问于
浏览
26

lmglm 模型中,我使用函数 coefconfint 来实现目标:

m = lm(resp ~ 0 + var1 + var1:var2) # var1 categorical, var2 continuous
coef(m)
confint(m)

现在我使用lme4包中的 lmer 函数为模型添加了随机效果 - 使用了混合效果模型 . 但是,函数 coefconfint 对我来说不再起作用了!

> mix1 = lmer(resp ~ 0 + var1 + var1:var2 + (1|var3)) 
                                      # var1, var3 categorical, var2 continuous
> coef(mix1)
Error in coef(mix1) : unable to align random and fixed effects
> confint(mix1)
Error: $ operator not defined for this S4 class

我试图谷歌并使用文档,但没有结果 . 请指出我正确的方向 .

编辑:我也在考虑这个问题是否更适合https://stats.stackexchange.com/,但我认为它更具技术性而非统计性,所以我认为它最适合这里(SO)......你怎么看?

5 回答

  • 12

    有两个新包lmerTestlsmeans,可以计算 lmerglmer 输出的95%置信限 . 也许你可以看看那些?并且coefplot2,我认为也可以这样做(尽管Ben在下面以不太复杂的方式指出Wald统计数据的标准错误,而不是在 lmerTestlsmeans 中使用的Kenward-Roger和/或Satterthwaite df近似值)... ...遗憾的是,包装 lsmeans 中仍然没有内置的绘图设施(因为包装 effects() 中,btw也会在 lmerglmer 对象上返回95%的置信限制,但是通过重新安装没有任何随机因素,显然不正确) .

  • 8

    我建议你使用好的老lme(在包装nlme) . 它有一些特权,如果你需要对比,那就有一系列的选择(在gmodels中可以估算,对比中的对比,在multcomp中的glht) .

    为什么lmer中不存在p值和confint:请参阅http://finzi.psych.upenn.edu/R/Rhelp02a/archive/76742.html .

  • 5

    假设固定效应的正常近似(也可以进行配置),我们可以获得95%的置信区间

    估计1.96 *标准误差 .

    以下内容不适用于方差分量/随机效应 .

    library("lme4")
    mylm <- lmer(Reaction ~ Days + (Days|Subject),  data =sleepstudy)
    
    # standard error of coefficient
    
    days_se <- sqrt(diag(vcov(mylm)))[2]
    
    # estimated coefficient
    
    days_coef <- fixef(mylm)[2]
    
    upperCI <-  days_coef + 1.96*days_se
    lowerCI <-  days_coef  - 1.96*days_se
    
  • 7

    不确定它何时添加,但现在confint()在lme4中实现 . 例如,以下示例有效:

    library(lme4)
    m = lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
    confint(m)
    
  • 1

    要查找系数,您只需使用lme4的汇总功能即可

    m = lm(resp ~ 0 + var1 + var1:var2) # var1 categorical, var2 continuous
    m_summary <- summary(m)
    

    拥有所有系数:

    m_summary$coefficient
    

    如果您想要置信区间,请将标准误差乘以1.96:

    CI <- m_summary$coefficient[,"Std. Error"]*1.96
    print(CI)
    

相关问题