【问题标题】:How I do to obtain the solution for Random Effects using package lme4?如何使用包 lme4 获得随机效应的解决方案?
【发布时间】:2019-09-19 16:12:45
【问题描述】:

我有一个类似的模型:

model=lmer(y ~ (1|ID) + Factor.A + Factor.B, data=df)

我想获得随机效应的解决方案,但我只能获得固定效应的解决方案,使用以下代码:

coef(summary(model))
summary(model)

我也试过这个代码:

coef(model)

但我认为此输出不适用于解决随机效应。是否有使用 lme4 包或其他包获得随机效应解决方案的代码?

【问题讨论】:

  • 我不确定您所说的“解决方案”是什么意思。你可以使用ranef(model)查看估计的随机效应,还有一些自动绘图方法,如dotplot(ranef(model))
  • @Marius,是的,就是这个。有没有办法获得这些估计的标准误差?
  • @Marius,请插入你的答案!!感谢您的帮助。

标签: r lme4


【解决方案1】:

仅使用lme4 包,您可以通过as.data.frame(ranef(fitted_model)) 最方便地获取条件模式以及条件标准差

library(lme4)
fm1 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)
as.data.frame(ranef(fm1))
##     grpvar        term grp     condval    condsd
## 1  Subject (Intercept) 308   2.2575329 12.070389
## 2  Subject (Intercept) 309 -40.3942719 12.070389
## 3  Subject (Intercept) 310 -38.9563542 12.070389
## ... etc.

我不确定我是否愿意称这些“标准错误” - 这里有一大堆蠕虫关于你可以对观察到的随机变量的条件值做出什么样的推论......根据Doug Bates

关于术语,我更喜欢将数量称为 由ranef 提取器返回“随机的条件模式 效果”。如果要精确,这些是条件模式 (对于线性混合模型,它们也是条件均值) 给定 Y = y 的随机效应 B,在参数估计值处进行评估。 还可以评估给定 Y 的 B 的条件方差-协方差 = y,从而得到一个预测区间。

【讨论】:

    【解决方案2】:

    我认为清楚地说明您的问题以及您正在尝试做的事情会有所帮助。但是,根据 cmets,我想我知道您要做什么。

    正如@Marius 所说,ranef(model) 会给你拦截。

    arm 有一个se.ranef 函数,可以为您提供“标准错误”。我不确定这些是如何计算的。请参阅此链接以确保它正在执行您想要的操作:

    https://rdrr.io/cran/arm/man/se.coef.html

    所以大家一起来:

    library(lme4)
    model=lmer(y ~ (1|ID) + Factor.A + Factor.B, data=df)
    
    ranef(model)
    
    library(arm)
    se.ranef(model)
    

    【讨论】:

    • arm::se.ranef() 返回与as.data.frame(ranef(fm1))$condsd 相同的值,即@ben 的响应中描述的条件标准差
    猜你喜欢
    • 2021-02-10
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 2018-11-11
    相关资源
    最近更新 更多