2015-12-16 5 views
1

я вписываюсь эту модель в nlme:различные случайные эффекты в nlme и lme4

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

теперь я хочу, случайные эффекты на одного работника, они не отображаются в резюме, но оно должно быть таким:

> [email protected] 
[1] -5.34898187 -0.97939105 -0.04258222 0.74355106 3.81602197 1.81138210 

почему они отличаются от результатов nlme в то время как фиксированные эффекты тоже самое?

+1

Не могли бы вы представить воспроизводимый пример? – Bas

+0

@Bas Извините, была опечатка, это библиотека (nlme), конечно, – spore234

+0

Как я ее не видел? В любом случае, сводка обоих пакетов, похоже, дает тот же результат. Посмотрев на 'str' fit2, я придумал следующее:' fit2 @ pp $ delb' EDIT: неправильно прочитайте свой вопрос, позвольте мне посмотреть, могу ли я найти правильные значения для одного рабочего – Bas

ответ

3

Используйте 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) 
+0

отлично, спасибо – spore234