Processing math: 100%

13 votos

Calcular las predicciones de los efectos aleatorios manualmente para un modelo mixto lineal

Estoy tratando de calcular el efecto aleatorio predicciones a partir de un modelo lineal mixto con la mano, y utilizando la notación proporcionada por la Madera en Modelos Aditivos Generalizados: una introducción con R (pg 294 / pág 307 de pdf), Me estoy confundido sobre lo que cada uno de los parámetros representa.

A continuación se presenta un resumen de la Madera.

Definir un modelo mixto lineal

Y=Xβ+Zb+ϵ

where b N(0, ψ), and ϵ N(0, σ2)

Si b y y son variables aleatorias con distribución normal conjunta

[by]N[[0Xβ],[ψΣbyΣybΣθσ2]]

La RE predicciones son calculados por

E[by]=ΣbyΣ1yy(yxβ)=ΣbyΣ1θ(yxβ)/σ2=ψzTΣ1θ(yxβ)/σ2

donde Σθ=ZψZT/σ2+In

El uso de un azar interceptar modelo de ejemplo lme4 R paquete llego salida

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

Así que a partir de esto, creo que ψ = 23.51, (yXβ) puede estimarse a partir de la cake$angle - predict(m, re.form=NA), y sigma desde la plaza de la población a nivel de residuos.

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

La multiplicación de estos juntos

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

lo cual no es correcto cuando se compara con

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

Por qué?

9voto

user8076 Puntos 16

Dos problemas (confieso que me tomó como 40 minutos para encontrar el segundo):

  1. Usted no debe computar σ2 con el cuadrado de los residuos, se estima por REML como 23.51, y no hay ninguna garantía de que el BLUPs tienen la misma varianza.

    sig <- 23.51
    

    Y esto no es ψ ! Que se estima como 39.19

    psi <- 39.19
    
  2. Los residuos no son obtenidos con cake$angle - predict(m, re.form=NA) pero residuals(m).

Poner juntos:

> 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

que es similar a ranef(m).

Yo realmente no conseguir lo predict calcula.


PS. Para responder a tu último comentario, el punto es que usamos los "residuos" ˆϵ como una forma de obtener el vector PY donde P=V1V1X(XV1X)1XV1. Esta matriz se calcula durante el REML algoritmo. Está relacionado con el BLUPs de azar términos por ˆϵ=σ2PY y ˆb=ψZtPY.

Thus \sombrerodeb=ψ/σ2Ztˆϵ.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X