4.13 Modelli random e modelli misti
4.13.2 Modello a effetti misti
4.13 Modelli random e modelli misti 85
123.1 129.1 -55.55 136.7 111.1 Random effects:
Groups Name Variance Std.Dev.
classe (Intercept) 41.057 6.4076
Residual 42.414 6.5126
number of obs: 20, groups: classe, 10 Fixed effects:
Estimate Std. Error t value (Intercept) 88.750 5.580 15.906
scuola2 -4.500 7.891 -0.570
scuola3 -1.500 7.891 -0.190
scuola4 -6.750 7.891 -0.855
scuola5 -3.500 7.891 -0.444
Correlation of Fixed Effects:
(Intr) scuol2 scuol3 scuol4 scuola2 -0.707
scuola3 -0.707 0.500
scuola4 -0.707 0.500 0.500
scuola5 -0.707 0.500 0.500 0.500
Si ottengono le due stime stime ˆσ2 = 42.4 e ˆσ2a = 41.0. Nella tabella finale si ha la valutazione dei livelli del fattore a effetto fisso, da cui si evidenzia che i valori delle variabili t sono piuttosto bassi, tali da far pensare che nessuna delle scuole differisca per la prestazione dei suoi studenti dalla scuola 1 (categoria di riferimento).
L’analisi con la funzione lme `e la seguente:
> valutazione2 <- groupedData(punteggio ~ 1 | classe, valutazione)
> mod.mix3 <- lme(punteggio ~ scuola, random = ~ 1|classe, valutazione2)
> summary(mod.mix3)
Linear mixed-effects model fit by REML Data: valutazione2
AIC BIC logLik
125.0971 130.0534 -55.54853 Random effects:
Formula: ~1 | classe
(Intercept) Residual StdDev: 6.438149 6.50385 Fixed effects: punteggio ~ scuola
Value Std.Error DF t-value p-value (Intercept) 88.75 5.594631 10 15.863423 0.0000 scuola2 -4.50 7.912003 5 -0.568756 0.5941 scuola3 -1.50 7.912003 5 -0.189585 0.8571 scuola4 -6.75 7.912003 5 -0.853134 0.4325 scuola5 -3.50 7.912003 5 -0.442366 0.6767
Correlation:
(Intr) scuol2 scuol3 scuol4 scuola2 -0.707
scuola3 -0.707 0.500
scuola4 -0.707 0.500 0.500
scuola5 -0.707 0.500 0.500 0.500
4.13 Modelli random e modelli misti 87
Standardized Within-Group Residuals:
Min Q1 Med Q3 Max
-1.1682385 -0.5847884 -0.1633813 0.6415164 1.4799257 Number of Observations: 20
Number of Groups: 10
La significativit`a del fattore scuola si pu`o valutare con la chiamata:
> anova(mod.mix3)
numDF denDF F-value p-value (Intercept) 1 10 1167.7754 <.0001
scuola 4 5 0.2196 0.9165
Questo modello multistrato bilanciato pu`o essere trattato in maniera appropriata anche con un approccio di tipo split-plot, in cui il fattore classe viene assunto come termine d’errore:
> mod.split <- aov(punteggio ~ scuola + Error(classe), valutazione)
> summary(mod.split) Error: classe
Df Sum Sq Mean Sq F value Pr(>F) scuola 4 110.0 27.5 0.2196 0.9165 Residuals 5 626.0 125.2
Error: Within
Df Sum Sq Mean Sq F value Pr(>F) Residuals 10 423.0 42.3
Si noti che si ha una stima della varianza d’errore nella seconda tabella: ˆσ2 = 42.3 e che la stima di ˆσa2 si pu`o ottenere dalla prima tenendo conto del fatto che la varianza che si legge in tabella `e una stima non distorta di σ2+ nrepσa2, dove nrep`e il numero di repliche per classe. Ricordando che per ogni classe si selezionano 2 studenti si ha ˆσa2 = (125.2 − ˆσ2)/2 = 41.45. Per quanto riguarda la differenza tra le scuole, si vede che il valore campionario, F = 0.2196, coincide con quanto trovato precedentemente nel modello fittato con la funzione lme.
Infine, per confronto, se si fosse scelto di adottare un modello a effetti fissi si sarebbe ottenuto:
> mod.fix <- aov(punteggio ~ scuola + classe, valutazione)
> anova(mod.fix)
Analysis of Variance Table Response: punteggio
Df Sum Sq Mean Sq F value Pr(>F) scuola 4 110.0 27.5 0.6501 0.63969 classe 5 626.0 125.2 2.9598 0.06785 . Residuals 10 423.0 42.3
Si vede che in questo caso la significativit`a del fattore scuola `e aumentata, dato che viene pesato dalla sola varianza d’errore.
Esempio
In uno studio di Winter e collaboratori (Winter, Snell & Stray-Gundersen, Effects of 100% oxygen on performance of professional soccer players, JAMA 262:227-229, 1989), si investiga l’effetto dell’inala-zione di ossigeno puro sul recupero muscolare dopo uno sforzo. Viene misurato il livello di lattato (in mmol/l) nel sangue in 12 calciatori professionisti in due momenti: immediatamente dopo uno sforzo fisco e dopo 4 minuti di recupero. Il test viene ripetuto due volte da ogni calciatore: in una
soggetto lact air time soggetto lact air time
1 6.8 normal A 1 8.5 O A
2 8.0 normal A 2 7.3 O A
3 9.6 normal A 3 12.3 O A
4 6.7 normal A 4 6.3 O A
5 10.9 normal A 5 7.6 O A
6 5.9 normal A 6 5.9 O A
7 6.5 normal A 7 9.0 O A
8 6.2 normal A 8 5.6 O A
9 7.9 normal A 9 8.2 O A
10 8.0 normal A 10 8.1 O A
11 7.7 normal A 11 7.5 O A
12 6.9 normal A 12 7.5 O A
1 9.3 normal B 1 9.3 O B
2 8.1 normal B 2 8.4 O B
3 8.3 normal B 3 11.1 O B
4 5.3 normal B 4 7.0 O B
5 11.4 normal B 5 7.0 O B
6 5.0 normal B 6 5.7 O B
7 8.8 normal B 7 8.5 O B
8 6.6 normal B 8 6.0 O B
9 8.9 normal B 9 9.7 O B
10 10.8 normal B 10 10.5 O B
11 7.9 normal B 11 10.2 O B
12 9.0 normal B 12 10.2 O B
Tabella 4.8: Livello di lattato nel sangue di 12 atleti professionisti immediatamente dopo una prova di sforzo (time = A) e dopo un tempo di recupero di 4 minuti (time = B). Il test viene ripetuto in due occasioni da ogni soggetto; durante un recupero l’atleta inala aria normale (air = normal), durante l’altra ossigeno puro (air = O).
occasione durante il recupero l’atleta respira aria ordinaria, nell’altra ossigeno puro. I dati registrati sono riportati in Tab. 4.8.
Il disegno utilizzato presenta due fattori di trattamento incrociati: air a due livelli (inalazione di aria o di ossigeno) e time a due livelli (A = immediatamente dopo lo sforzo, B = dopo il periodo di recupero). Quello che interessa `e verificare se l’ossigeno altera i livelli di lattato dopo il periodo di recupero, quindi l’effetto di interesse `e quello dell’interazione air : time.
L’esperimento `e stratificato a tre livelli: i soggetti sono le unit`a di blocco all’interno di cui `e annidata la variabile air e all’interno di questa `e annidata time (ogni soggetto viene sottoposto a due prove e dopo ogni prova vengono fatte due misurazioni di lattato). I dati possono essere analizzati in due modi tenendo conto della statificazione e quindi della presenza di diverse fonti d’errore. Il primo
`e far uso di un disegno split-plot. Si supponga che i dati siano stati inseriti nel data frame atleti. Il modello si fitta con la chiamata:
> mod <- aov(lact ~ air * time + Error(soggetto/air/time), atleti) in cui si nota chiaramente la definizione della stratificazione individuata. Il risultato `e:
> summary(mod) Error: soggetto
Df Sum Sq Mean Sq F value Pr(>F) Residuals 11 86.781 7.889
Error: soggetto:air
4.13 Modelli random e modelli misti 89
Df Sum Sq Mean Sq F value Pr(>F)
air 1 0.9919 0.9919 0.4118 0.5342
Residuals 11 26.4956 2.4087 Error: soggetto:air:time
Df Sum Sq Mean Sq F value Pr(>F) time 1 6.8252 6.8252 6.9603 0.01501 * air:time 1 0.0469 0.0469 0.0478 0.82895 Residuals 22 21.5729 0.9806
Il fattore di blocco `e isoltato nela prima tabella, mentre nell’ultima si legge la significativit`a del fattore in studio, ossia air : time che risulta non significativa (P = 0.83). Si conclude che non si ha evidenza che respirare ossigeno cambi i livelli di lattato nel sangue dopo il periodo di recupero in modo differente dal respirare aria. Le tre componenti d’errore sono legate a tre effetti diversi: nella tabella inferiore essa rappresenta l’ineliminabile variabilit`a legata agli errori presenti su ogni singola misura di lattato;
nella seconda tabella rappresenta la variabilit`a fra differenti prove di uno stesso soggetto (interazione soggetto : air); infine nella tabella superiore essa misura la variabilit`a che esiste fra i soggetti.
I dati in esame possono essere studiati anche con un approccio differente, fittando un modello a effetti misti. Da quanto appena detto i due fattori random sono (1|soggetto) e (1|soggetto : air). Il fit del modello si ottiene quindi con la chiamata:
> mod.mix <- lmer(lact ~ air * time + (1|soggetto) + (1|soggetto:air), atleti)
> summary(mod.mix)
Linear mixed-effects model fit by REML
Formula: lact ~ air * time + (1 | soggetto) + (1 | soggetto:air) Data: atleti
AIC BIC logLik MLdeviance REMLdeviance
178.8 190 -83.38 166.9 166.8
Random effects:
Groups Name Variance Std.Dev.
soggetto:air (Intercept) 0.71204 0.84383 soggetto (Intercept) 1.37591 1.17299
Residual 0.98030 0.99010
number of obs: 48, groups: soggetto:air, 24; soggetto, 12 Fixed effects:
Estimate Std. Error t value (Intercept) 7.5917 0.5057 15.014
airO 0.2250 0.5311 0.424
timeB 0.6917 0.4042 1.711
airO:timeB 0.1250 0.5716 0.219 Correlation of Fixed Effects:
(Intr) airO timeB
airO -0.525
timeB -0.400 0.381
airO:timeB 0.283 -0.538 -0.707
Usando questo approccio si ha direttamente una stima delle tre componenti della varianza elencate sopra. Si vede che il maggior contributo alla varianza totale `e dato dalla variabilit`a che esiste fra i soggetti (risultato prevedibile), che vale circa 1.38.
Infine, l’analisi mediante funzione lme conferma quanto trovato dal modello split-plot:
> atleti2 <- groupedData(lact ~ 1 | soggetto/air, atleti)
> mod.mix3 <- lme(lact ~ air * time, random = ~ 1|soggetto/air, atleti2)
> summary(mod.mix3)
Linear mixed-effects model fit by REML Data: atleti2
AIC BIC logLik
180.7652 193.2546 -83.38262 Random effects:
Formula: ~1 | soggetto (Intercept) StdDev: 1.170507
Formula: ~1 | air %in% soggetto (Intercept) Residual StdDev: 0.8450312 0.9902434 Fixed effects: lact ~ air * time
Value Std.Error DF t-value p-value (Intercept) 7.591667 0.5053668 22 15.022093 0.0000 airO 0.225000 0.5314539 11 0.423367 0.6802 timeB 0.691667 0.4042652 22 1.710923 0.1012 airO:timeB 0.125000 0.5717173 22 0.218640 0.8289
Correlation:
(Intr) airO timeB
airO -0.526
timeB -0.400 0.380
airO:timeB 0.283 -0.538 -0.707 Standardized Within-Group Residuals:
Min Q1 Med Q3 Max
-1.42222106 -0.66109214 -0.03931057 0.63390621 1.80607790 Number of Observations: 48
Number of Groups:
soggetto air %in% soggetto
12 24
> anova(mod.mix3)
numDF denDF F-value p-value (Intercept) 1 22 397.3485 <.0001
air 1 11 0.4118 0.5342
time 1 22 6.9604 0.0150
air:time 1 22 0.0478 0.8289