【问题标题】:different random effects in nlme and lme4nlme 和 lme4 中的不同随机效应
【发布时间】:2015-12-16 08:44:59
【问题描述】:

我在nlme中拟合了这个模型:

library(nlme)
data("Machines")
fit1 <- lme(score ~  - 1 + Machine, random=~1|Worker, data=Machines)

我可以得到系数

> fit1$coefficients
$fixed
MachineA MachineB MachineC 
52.35556 60.32222 66.27222 

$random
$random$Worker
  (Intercept)
6 -8.70711058
2 -1.59425968
4 -0.06931564
1  1.21035769
3  6.21174760
5  2.94858062

现在我在lme4 中安装了相同的模型

library(lme4)
fit2 <- lmer(score ~  -1 + Machine + (1|Worker), data=Machines)

我得到完全相同的固定效果:

 >summary(fit2)
 ...
 Fixed effects:
          Estimate Std. Error t value
 MachineA   52.356      2.229   23.48
 MachineB   60.322      2.229   27.06
 MachineC   66.272      2.229   29.73
 ...

我现在想要每个工人的随机效果,它们不会显示在摘要中,但它必须是这样的:

 > fit2@u
 [1] -5.34898187 -0.97939105 -0.04258222  0.74355106  3.81602197    1.81138210

为什么它们与nlme 结果不同,而固定效果相同?

【问题讨论】:

  • 你能提供一个可重现的例子吗?
  • @Bas 对不起,有一个错字,当然是图书馆(nlme)
  • 我怎么没看到?.. 无论如何,这两个包的摘要似乎产生了相同的结果。在查看了 fit2 的 str 之后,我得出了以下结论:fit2@pp$delb 编辑:误读了您的问题,让我看看能否找到每个工人的正确值
  • 看起来 fit1 和 fit2 的截距不同,intercept + worker + machine 应该会产生预期的结果
  • @Bas 你这是什么意思?如何从 fit2 模型中获取这些值?

标签: r lme4 nlme


【解决方案1】:

使用ranef() 提取随机效果。

library(lme4)
library(nlme)
data("Machines")

fit1 <- lme(score ~  - 1 + Machine, random=~1|Worker, data=Machines)
ranef(fit1)

fit2 <- lmer(score ~  -1 + Machine + (1|Worker), data=Machines)
ranef(fit2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-11
    • 2017-11-28
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    相关资源
    最近更新 更多