I valori ottenuti dai BLUP non sono stimati allo stesso modo delle stime BLU degli effetti fissi; per convenzione i BLUP vengono definiti previsioni . Quando si adatta un modello di effetti misti, ciò che viene stimato inizialmente sono la media e la varianza (e forse la covarianza) degli effetti casuali. L'effetto casuale per una data unità di studio (diciamo uno studente) viene successivamente calcolato dalla media e dalla varianza stimate e dai dati. In un modello lineare semplice, la media viene stimata (così come la varianza residua), ma i punteggi osservati sono considerati composti sia da quello che dall'errore, che è una variabile casuale. In un modello di effetti misti, l'effetto per una data unità è parimenti una variabile casuale (sebbene in un certo senso sia già stata realizzata).
Puoi anche trattare tali unità come effetti fissi, se lo desideri. In tal caso, i parametri per quell'unità sono stimati come al solito. In tal caso, tuttavia, la media (ad esempio) della popolazione da cui sono state estratte le unità non è stimata.
Inoltre, il presupposto alla base degli effetti casuali è che sono stati campionati a caso da alcune popolazioni, ed è la popolazione a cui tieni. Il presupposto alla base degli effetti fissi è che hai selezionato quelle unità intenzionalmente perché quelle sono le uniche unità a cui tieni.
Se ci si gira e si adatta un modello di effetti misti e si prevedono quegli stessi effetti, essi tendono ad essere "ridotti" verso la media della popolazione in relazione alle stime degli effetti fissi. Puoi considerarlo analogo a un'analisi bayesiana in cui la media stimata e la varianza specificano un precedente normale e il BLUP è come la media del posteriore che deriva dalla combinazione ottimale dei dati con il precedente.
La quantità di restringimento varia in base a diversi fattori. Un'importante determinazione di quanto saranno lontane le previsioni degli effetti casuali dalle stime degli effetti fissi è il rapporto tra la varianza degli effetti casuali e la varianza dell'errore. Ecco una breve R
demo per il caso più semplice con 5 unità di 'livello 2' con solo mezzi (intercetta). (Puoi pensarlo come un punteggio di prova per gli studenti all'interno delle classi.)
library(lme4) # we'll need to use this package
set.seed(1673) # this makes the example exactly reproducible
nj = 5; ni = 5; g = as.factor(rep(c(1:nj), each=ni))
##### model 1
pop.mean = 16; sigma.g = 1; sigma.e = 5
r.eff1 = rnorm(nj, mean=0, sd=sigma.g)
error = rnorm(nj*ni, mean=0, sd=sigma.e)
y = pop.mean + rep(r.eff1, each=ni) + error
re.mod1 = lmer(y~(1|g))
fe.mod1 = lm(y~0+g)
df1 = data.frame(fe1=coef(fe.mod1), re1=coef(re.mod1)$g)
##### model 2
pop.mean = 16; sigma.g = 5; sigma.e = 5
r.eff2 = rnorm(nj, mean=0, sd=sigma.g)
error = rnorm(nj*ni, mean=0, sd=sigma.e)
y = pop.mean + rep(r.eff2, each=ni) + error
re.mod2 = lmer(y~(1|g))
fe.mod2 = lm(y~0+g)
df2 = data.frame(fe2=coef(fe.mod2), re2=coef(re.mod2)$g)
##### model 3
pop.mean = 16; sigma.g = 5; sigma.e = 1
r.eff3 = rnorm(nj, mean=0, sd=sigma.g)
error = rnorm(nj*ni, mean=0, sd=sigma.e)
y = pop.mean + rep(r.eff3, each=ni) + error
re.mod3 = lmer(y~(1|g))
fe.mod3 = lm(y~0+g)
df3 = data.frame(fe3=coef(fe.mod3), re3=coef(re.mod3)$g)
Quindi il rapporto tra la varianza degli effetti casuali e la varianza dell'errore è 1/5 per model 1
, 5/5 per model 2
e 5/1 per model 3
. Nota che ho usato il livello significa codificare per i modelli a effetti fissi. Ora possiamo esaminare come confrontare gli effetti fissi stimati e gli effetti casuali previsti per questi tre scenari.
df1
# fe1 re1
# g1 17.88528 15.9897
# g2 18.38737 15.9897
# g3 14.85108 15.9897
# g4 14.92801 15.9897
# g5 13.89675 15.9897
df2
# fe2 re2
# g1 10.979130 11.32997
# g2 13.002723 13.14321
# g3 26.118189 24.89537
# g4 12.109896 12.34319
# g5 9.561495 10.05969
df3
# fe3 re3
# g1 13.08629 13.19965
# g2 16.36932 16.31164
# g3 17.60149 17.47962
# g4 15.51098 15.49802
# g5 13.74309 13.82224
Un altro modo per finire con previsioni di effetti casuali più vicine alle stime di effetti fissi è quando hai più dati. Possiamo confrontare model 1
da sopra, con il suo basso rapporto tra varianza di effetti casuali e varianza di errore, con una versione ( model 1b
) con lo stesso rapporto, ma molti più dati (notate che ni = 500
invece di ni = 5
).
##### model 1b
nj = 5; ni = 500; g = as.factor(rep(c(1:nj), each=ni))
pop.mean = 16; sigma.g = 1; sigma.e = 5
r.eff1b = rnorm(nj, mean=0, sd=sigma.g)
error = rnorm(nj*ni, mean=0, sd=sigma.e)
y = pop.mean + rep(r.eff1b, each=ni) + error
re.mod1b = lmer(y~(1|g))
fe.mod1b = lm(y~0+g)
df1b = data.frame(fe1b=coef(fe.mod1b), re1b=coef(re.mod1b)$g)
Ecco gli effetti:
df1
# fe1 re1
# g1 17.88528 15.9897
# g2 18.38737 15.9897
# g3 14.85108 15.9897
# g4 14.92801 15.9897
# g5 13.89675 15.9897
df1b
# fe1b re1b
# g1 15.29064 15.29543
# g2 14.05557 14.08403
# g3 13.97053 14.00061
# g4 16.94697 16.92004
# g5 17.44085 17.40445
Su una nota in qualche modo correlata, a Doug Bates (l'autore del pacchetto R lme4) non piace il termine "BLUP" e usa invece "modalità condizionale" (vedi pagg. 22-23 della sua bozza del libro lme4 pdf ). In particolare, sottolinea nella sezione 1.6 che "BLUP" può essere utilizzato in modo significativo solo per modelli lineari a effetti misti.