Обчисліть передбачення випадкових ефектів вручну для лінійної змішаної моделі


10

Я намагаюся вручну обчислити передбачення випадкових ефектів від лінійної змішаної моделі, і використовуючи позначення, надані Вудом в узагальнених моделях добавок: вступ з R (pg 294 / pg 307 pdf), я заплутався в тому, які параметри кожного представляє.

Нижче наведено резюме з Вуду.

Визначте лінійну змішану модель

Y=Хβ+Zб+ϵ

де b N (0, ), і N (0, )ψ ϵ σ 2ψϵσ2

Якщо b і y - випадкові величини з спільним нормальним розподілом

[бу]N[[0Хβ],[ψΣбуΣубΣθσ2]]

Прогнози РЕ обчислюються за

Е[бу]=ΣбуΣуу-1(у-хβ)=ΣбуΣθ-1(у-хβ)/σ2=ψzТΣθ-1(у-хβ)/σ2

деΣθ=ZψZТ/σ2+Ян

Використовуючи приклад моделі випадкового перехоплення з lme4пакету R, я отримую вихід

library(lme4)
m = lmer(angle ~ temp + (1 | replicate), data=cake)
summary(m)

% Linear mixed model fit by REML ['lmerMod']
% Formula: angle ~ temp + (1 | replicate)
%    Data: cake
% 
% REML criterion at convergence: 1671.7
% 
% Scaled residuals: 
%      Min       1Q   Median       3Q      Max 
% -2.83605 -0.56741 -0.02306  0.54519  2.95841 
% 
% Random effects:
%  Groups    Name        Variance Std.Dev.
%  replicate (Intercept) 39.19    6.260   
%  Residual              23.51    4.849   
% Number of obs: 270, groups:  replicate, 15
% 
% Fixed effects:
%             Estimate Std. Error t value
% (Intercept)  0.51587    3.82650   0.135
% temp         0.15803    0.01728   9.146
% 
% Correlation of Fixed Effects:
%      (Intr)
% temp -0.903

Так що з цим, я думаю = 23,51, можна оцінити , і від площі залишків рівня населення.( y - X β )ψ(у-Хβ)cake$angle - predict(m, re.form=NA)sigma

th = 23.51
zt = getME(m, "Zt") 
res = cake$angle - predict(m, re.form=NA)
sig = sum(res^2) / (length(res)-1)

Помноження цих даних разом дає

th * zt %*% res / sig
         [,1]
1  103.524878
2   94.532914
3   33.934892
4    8.131864
---

що невірно в порівнянні з

> ranef(m)
$replicate
   (Intercept)
1   14.2365633
2   13.0000038
3    4.6666680
4    1.1182799
---

Чому?

Відповіді:


9

Дві проблеми (я зізнаюся, мені знадобилося 40 хвилин, щоб помітити другу):

  1. Ви не повинні обчислювати з квадратом залишків, він оцінюється як REML як , і немає гарантії, що BLUP матиме однакову дисперсію.σ223.51

    sig <- 23.51

    І це не ! Який оцінюється якψ39.19

    psi <- 39.19
  2. Залишки не отримуються за допомогою, cake$angle - predict(m, re.form=NA)а за допомогою residuals(m).

Збираючи його разом:

> psi/sig * zt %*% residuals(m)
15 x 1 Matrix of class "dgeMatrix"
         [,1]
1  14.2388572
2  13.0020985
3   4.6674200
4   1.1184601
5   0.2581062
6  -3.2908537
7  -4.6351567
8  -4.5813846
9  -4.6351567
10 -3.1833095
11 -2.1616392
12 -1.1399689
13 -0.2258429
14 -4.0974355
15 -5.3341942

який схожий на ranef(m).

Я дійсно не отримую те, що predictобчислює.


ϵ^ПYП=V-1-V-1Х(Х'V-1Х)-1Х'V-1

ϵ^=σ2ПY
б^=ψZтПY.

б^=ψ/σ2Zтϵ^


1
у-хβplot(residuals(m), cake$angle-predict(m, re.form=NULL)) ; plot(residuals(m), cake$angle-predict(m, re.form=NA))

1
Спосіб з використанням фіксованого ефекту, а третій варіант E [б | у] вище: z = getME(m, "Z") ; big_sig = solve(((z * psi) %*% zt ) / sig + diag(270)) ; psi/sig * zt %*% big_sig %*% (cake$angle-predict(m, re.form=NA)). Дякуємо, що вказали на правильні пункти.
користувач2957945

ΣбуΣуу

ΣубψZ

Елвісе, я ще раз подумав над цим (я знаю, що я повільний). Я думаю, що використовувати такі залишки не дуже розумно, оскільки для прогнозування використовуються передбачувані значення (і так залишки) на рівні RE, тому ми використовуємо їх з обох сторін вашого рівняння. (тому він використовує прогнози RE (E [b | y]) для прогнозування залишків, хоча це терміни, які ми намагаємось передбачити))
user2957945
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.