J'essaie de calculer les prédictions d'effet aléatoire à partir d'un modèle mixte linéaire à la main, et en utilisant la notation fournie par Wood dans les modèles additifs généralisés: une introduction avec R (pg 294 / pg 307 du pdf), je suis confus sur ce que chaque paramètre représente.
Voici un résumé de Wood.
Définir un modèle mixte linéaire
où b N (0, ψ ) et ϵ ∼ N (0, σ 2 )
Si b et y sont des variables aléatoires avec une distribution normale conjointe
Les prédictions RE sont calculées par
En utilisant un exemple de modèle d'interception aléatoire du lme4
package R, j'obtiens une sortie
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
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)
La multiplication de ces ensembles donne
th * zt %*% res / sig
[,1]
1 103.524878
2 94.532914
3 33.934892
4 8.131864
---
ce qui n'est pas correct par rapport à
> ranef(m)
$replicate
(Intercept)
1 14.2365633
2 13.0000038
3 4.6666680
4 1.1182799
---
Pourquoi?
la source
plot(residuals(m), cake$angle-predict(m, re.form=NULL)) ; plot(residuals(m), cake$angle-predict(m, re.form=NA))
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))
. Merci d'avoir signalé les bons articles.