` degli Studi di Trieste Universita Analisi Multivariata dei Dati Sperimentali Corso di Laurea Magistrale in Biotecnologie Mediche Corso di Laurea Magistrale in Nanotecnologie Modelli longitudinali lineari con R 0 2 4 6 8 1012 PaO2 FiO2 hfpv 400 300 200 100 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● control ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 0 2 4 6 8 1012 time (hour) Autore Massimo Borelli, Ph.D. 27 marzo 2014 Indice 1 Introduzione ai modelli misti 1.1 Cosa impareremo nelle pagine seguenti? . . . . . . . . . . . . . . . . . . . 2 il dataset percussive 2.1 il modello lineare sbagliato . . . . 2.2 il primo modello misto . . . . . . . 2.3 il secondo modello misto . . . . . . 2.4 il terzo modello misto . . . . . . . 2.5 diagnostica del terzo modello misto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 5 7 8 9 10 11 3 Interpretazione dei risultati 12 Bibliografia 13 1 1 Introduzione ai modelli misti Abbiamo imparato che in un semplice modello lineare come la retta di regressione vi sono due componenti: y = q + mx + 1. la componente degli effetti fissi, ovvero il predittore lineare q + mx, che specifica quali covariate del dataset siano dei predittori significativi del modello statistico. Il software R in tal caso ci fornisce le loro stime puntuali (estimates) e le loro affidabilit` a (standard errors), come nell’esempio della statura e del peso degli studenti: Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -83.89056 16.67708 -5.03 4.34e-06 *** statura 0.85392 0.09649 8.85 1.18e-12 *** 2. la componente degli effetti casuali, ovvero - nel caso della retta di regressione e dei modelli lineari in generale - il residuo , che descrive quanto ciascun dato della risposta si discosti dal modello statistico, interpretando tali scostamenti come un numero casuale distribuito normalmente con media nulla e deviazione standard σ stimata dal software R: Residual standard error: 6.459 on 63 degrees of freedom Il modello lineare `e particolarmente adeguato a descrivere esperimenti realizzati in un design cross-section, nel quale ogni unit`a statistica `e caratterizzata da un unico dato, in termini di risposta. Ci` o evidentemente non accade nei seguenti casi tipici delle biotecnologie e delle nanotecnologie: • esperimenti con misure ripetute, nei quali la variabile dipendente `e misurata pi` u volte sulla medesima unit`a statistica (esempio: esperimenti in duplicato, in triplicato, ...) • esperimenti longitudinali, nei quali la variabile dipendente `e misurata ripetutamente in tempi diversi sulla medesima unit`a statistica (esempio: curve di crescita) 2 • esperimenti longitudinali in cluster , nei quali distinte unit`a statistiche appartengono a diversi cluster e delle quali si hanno misure raccolte nel tempo (esempio: curve di crescita di topi appartenenti a nidiate distinte; follow-up nelle lesioni tumorali mammarie appartenenti a sedi diverse -destra o sinistra- nella medesima paziente; evoluzione delle infiammazioni gengivali in diversi denti del medesimo paziente; ...) Da un punto di vista matematico, in questi tipi di studi osservazionali con misure ripetute e/o dati in cluster i residui non sono indipendenti tra loro (almeno a livello del singolo soggetto), ovvero potrebbero non avere varianza costante. I modelli pi` u adeguati dal punto di vista statistico per trattare questi studi sono i modelli ad effetti misti (si veda ad esempio [9]) nei quali la parte del modello relativa agli effetti casuali presenta pi` u di un termine, oltre al residuo : y = β0 + β1 x1 + .. + b1 z1 + .. + dove ad esempio β0 e β1 sono la quota e la pendenza della retta di regressione, mentre b1 ad esempio `e un numero casuale, che non `e una costante del modello (come lo sono la quota e la pendenza), che proviene da una variabile aleatoria gaussiana (non osservata) della quale il software riporta la deviazione standard. 3 1.1 Cosa impareremo nelle pagine seguenti? Il nostro obiettivo `e condurre un’analisi simile ad una ’Ancova’, come quando ci siamo occupati della statura, del genere e del peso degli studenti. Vedremo che anche in questo caso il dataset riguarda due gruppi di soggetti, ma sui quali abbiamo fatto delle osservazioni ad intervalli di tempo consecutivi. Vedremo che il primo gruppo, hfpv, ha una risposta che si pu` o modellare con una retta ’crescente’: y = 6.9 · x + 177.0 mentre il secondo gruppo di pazienti, control, ha una risposta ’orizzontale’ (e quindi inefficace dal punto di vista della fisiologia respiratoria) y = 0.1 · x + 157.6 Queste due rette di regressione saranno le rette che modellano il comportamento delle due popolazioni (gruppi), di cui noi stiamo esaminando due campioni casualmente giunti alla nostra osservazione. Ciascun soggetto in realt`a avr`a una propria retta di regressione, e per gli appartenenti al primo gruppo sar`a del tipo: y = (6.9 + b1 ) · x + (177.0 + b2 ) + mentre per quella del secondo gruppo sar`a del tipo: y = (0.1 + b3 ) · x + (157.6 + b2 ) + essendo b1 , b2 , b3 ed delle perturbazioni casuali che potremo stimare in ogni singolo caso e di cui conosceremo i parametri generali (ovvero le medie -uguali a zero- e le deviazioni standard σ1 , σ2 , σ3 e σ. 0 2 4 6 8 1012 PaO2 FiO2 hfpv 400 300 200 100 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● control ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 0 2 4 6 8 1012 time (hour) 4 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 2 il dataset percussive Il dataset percussive riporta i dati di uno studio condotto dal professor Umberto Lucangelo, in cui un gruppo di 35 pazienti caratterizzati da grave compromissione respiratoria vengono trattati con un ventilatore ad alta frequenza (hfpv, high frequency percussive ventilation) per 12 ore consecutive, e gli effetti di tale ventilazione si devono comparare con un gruppo di 35 pazienti ventilati in maniera convenzionale. Si tratta quindi di uno studio di tipo longitudinale caratterizzato da misure ripetute sull’unit`a statistica subject; ossia, le misure di ossigenazione (P aO2 /F iO2 ) sono raccolte - in maniera bilanciata - con il passare del tempo. www <- "http://www.dmi.units.it/~borelli/dataset/percussive.txt" percussive <- read.table(www, header = TRUE) attach(percussive) time <- time - 12 treatment <- factor(treatment) treatment1 <- treatment[1:70] levels(treatment)[1] <- "hfpv" levels(treatment)[2] <- "control" str(percussive) head(percussive) La Figura della pagina precedente visualizza l’evoluzione temporale della P aO2 /F iO2 nei 35+35 pazienti, ed `e stata realizzata con questi comandi: xyplot(pafi ~ time | treatment, type = "b", groups = subject, xlab = "time (hour)", ylab = expression(PaO[2] / FiO[2])) Cerchiamo di indagare sul profilo temporale di ciascun paziente utilizzando una tecnica nota con il nome di Response feature analysis [4]. Per esempio, vediamo quale andamento hanno il primo ed il trentacinquesimo dei pazienti del gruppo trattato con hfpv: modellolineare1 <- lm(pafi ~ time, subset = (subject==1)) coef(modellolineare1) La Figura della pagina successiva mette in evidenza in colore arancione la retta di regressione determinata su tutti i 35 pazienti del trattamento hfpv, mentre in colore 5 400 ● 100 ● 300 PaO2 FiO2 ● 0 4 8 12 ● 200 ● 300 200 subject 35 100 PaO2 FiO2 400 subject 1 ● 4 8 ● 0 time (h) ● 12 time (h) verde e in blu i modelli lineari (ossia le consuete rette di regressione) del primo e del trentacinquesimo paziente. Il codice per generare la figura `e il seguente: modellolineare35 <- lm(pafi ~ time, subset=(subject==35)) modellolinearetutti <- lm(pafi ~ time, subset=(subject==1:35)) par(mfrow=c(1, 2)) plot(NA, xlim=c(0, 12), ylim=c(100, 400), xlab="time(h)", ylab=expression(PaO[2]/FiO[2]), main="subject1") points(pafi ~ time, subset=(subject==1), pch=19, col="darkgreen") abline(modellolineare1, col="darkgreen", lty=2) abline(modellolinearetutti, col="orange", lty=3) plot(NA, xlim=c(0, 12), ylim=c(100, 400), xlab="time(h)", ylab=expression(PaO[2]/FiO[2]), main="subject35") points(pafi ~ time, subset=(subject==35), pch=19, col="darkblue") abline(modellolineare35, col="darkblue", lty=2) abline(modellolinearetutti, col="orange", lty=3) L’idea della Response feature analysis dunque `e quella di andare a considerare tutte le 70 quote e le 70 pendenze delle rette di regressione della pafi rispetto al time di ciascuno dei 70 subject, ed investigare se vi siano differenze nei due treatment. pendenza <- numeric(70) 6 quota <- numeric(70) for(i in 1:70) { modellolineare <- lm(pafi ~ time, subset = (subject == i)) pendenza[i] <- coef(modellolineare)[2] quota[i] <- coef(modellolineare)[1] } plot(pendenza, quota, xlab = "pendenza", ylab = "quota") points(pendenza[36:70], quota[36:70], col = "blue", pch = 19) points(pendenza[1:35], quota[1:35], col = "red", pch = 19) Il grafico sottostante ci mostra due nuvole di punti, ed il fatto che la nube blu sia confinata pi` u a sinistra della rossa sta a significare che le pendenze dei profili temporali del gruppo control sono sensibilmente minori di quelle dei ventilati hfpv. 150 100 quote 200 250 rosso hfpv, blu control 0 5 10 15 20 pendenze Volendo, possiamo eseguire anche dei test formali: t.test(pendenza ~ treatment1) t.test(quota ~ treatment1) Otteniamo nel primo caso, come ci aspettavamo, un p-value altamente significativo. Nel secondo caso invece rimaniamo un po’ dubbiosi, visto che il p-value vale 0.0436. 7 2.1 il modello lineare sbagliato Per continuare a farci un’idea iniziale consideriamo un modello Ancova, teneno ben presente che questo tipo di analisi ci fa commettere due gravi errori. Il primo, ci chiede di fare finta che i nostri 35+35 pazienti non siano un campione casuale tratto da una popolazione, ma tutta la nostra popolazione. Il secondo errore sta ad esempio nell’illudersi che il valore che registriamo alla 12 ora sia del tutto indipendente dai dati che avevamo rilvato nelle tre occasioni precendenti, i.e. a 0, 4 ed 8 ore. Dunque, proviamo a vedere cosa succede: modellolineare <- lm(pafi ~ time*treatment) summary(modellolineare) (Intercept) time treatmentcontrol time:treatmentcontrol Estimate Std.Error t value Pr(> | t |) 177.0394 6.9227 -19.3949 -6.8405 7.4645 0.9975 10.5563 1.4106 23.718 6.940 -1.837 -4.849 < 2e-16 2.79e-11 0.0672 2.07e-06 *** *** . *** In pratica, i pazienti trattati con hfpv sarebbero descritti da un’unica retta di regressione di equazione y = 6.9 · (t − 12) + 177.0, mentre per i pazienti control il modello lineare sarebbe y = (6.9−6.8)·(t−12)+(177.0−19.4) ≡ 0.1·(t−12)+157.6. Riguardando la Figura di pagina 7 siamo ancor pi` u convinti che la retta arancione non sia sufficiente a modellare in maniera adeguata la retta verde e la retta blu (e tutte le rimanenti rette per gli altri 33 pazienti ventilati in alta frequenza). E non dimentichiamoci che il modello afferma di ammettere 276 gradi di libert`a nei residui (e noi abbiamo un campione di soli 70 pazienti). 2.2 il primo modello misto Vediamo di confrontare il modellolineare Ancova ad effetti fissi della Tabella ?? con un mixed model massimale. Massimale nel senso che in esso includiamo l’interazione ’*’ tra tempo e trattamento; ossia supponiamo che vi siano due pendenze diverse, in senso statistico, tra i due gruppi. Inoltre, assumiamo che vi siano due perturbazioni casuali, b e b0 , sulla quota e sull’intercetta, legate alle peculiarit`a del singolo subject: y = (m + b) · x + (q + b0 ) + 8 Linear mixed model fit by REML Formula: pafi ∼ time*treatment+(time — subject) AIC 2769 Random effects: Groups subject BIC 2798 logLik -1376 Name (Intercept) time Variance 1232.118 14.243 Residual 433.320 Number of obs: 280, groups: subject, 70 deviance 2766 REMLdev 2753 Std.Dev. 35.102 3.774 20.816 Cor 0.225 Fixed effects: (Intercept) time treatmentcontrol time:treatmentcontrol Estimate 177.0394 6.9227 -19.3949 -6.8405 Std. Error 6.6234 0.7495 9.3669 1.0599 t value 26.729 9.237 -2.071 -6.454 library(lme4) mixedpafi1 <- lmer(pafi ~ time*treatment+(time | subject)) summary(mixedpafi1) Come vediamo, non c’`e alcuna differenza tra i fixed effect del mixed model e i coefficienti dell’Ancova. Al contrario, l’incertezza delle stime si `e ridotta, nel senso che gli standard error del mixed model sono pi` u contenuti, e conseguentemente i consuntivi t value sono pi` u discosti dallo zero. Buon segno. Invece la cosa che ci lascia un po’ perplessi riguarda i random effect. La prima cosa che preoccupa, dal punto di vista dell’analisi numerica, `e che ci sono due ordini di grandezza che separano la varianza delle quote (1232.118) e delle pendenze (14.243). Questo fatto potrebbe creare problemi di mal condizionamento di matrici. La cosa per`o `e facilmente risolubile con il comando scale della library MASS, come vedremo fra qualche pagina. Il secondo dubbio invece riguarda la scelta della struttura dei random effect: considerando il fatto che il coefficiente di correlazione dei due random effects, 0.225, potrebbe essere un valore di correlazione ’piccolo’, ci chiediamo se non sia il caso di eliminarlo dalla struttura del nostro modello e risparmiare un parametro ridondante. 9 2.3 il secondo modello misto Per fare ci` o, abbiamo a disposizione due sintassi tra loro equivalenti, time-1, oppure time+0: mixedpafi2 <- lmer( pafi ~ time * treatment + ( 1 | subject ) + ( time + 0 | subject ) ) summary(mixedpafi2) Random effects: Groups subject subject Residual Name Variance Std.Dev. (Intercept) time 1325.603 15.479 422.451 36.4088 3.9343 20.5536 Estimate Std. Error t value 177.0394 6.9227 -19.3949 -6.8405 6.8061 0.7701 9.6253 1.0891 26.012 8.990 -2.015 -6.281 Fixed effects: (Intercept) time treatmentcontrol time:treatmentcontrol Si potrebbe verificare se i due modelli siano statisticamente equivalenti. Si tratta di un argomento che non possiamo qui affrontare per mancanza di tempo e vi rimandiamo a [1]. 2.4 il terzo modello misto Cosa vogliamo vedere in conclusione? Vogliamo vedere se convenga invece considerare un modello in cui gli effetti casuali per la pendenza del gruppo hfpv siano diversi da quelli del gruppo di controllo, introducendo quindi un ulteriore parametro rispetto al modello due. A fronte di questo ’aumento di costo’ del modello ci aspettiamo un miglioramento in termini di riduzione della eterogeneit`a. Un modo per condurre questa analisi `e quello di creare due variabili indicatrici del gruppo: Hind = as.numeric(treatment == "hfpv") Cind = as.numeric(treatment == "control") ed utilizzarle per separare le perturbazioni casuali delle pendenze: 10 mixedpafi3 <- lmer(pafi ~ time*treatment + (1 | subject) + ( 0 + time + Cind | subject) + ( 0 + time + Hind | subject) ) summary(mixedpafi3) 11 Random effects: Groups subject subject subject Residual Name Variance Std.Dev. (Intercept) time Cind time Hind 197.8053 6.5152 7.7281 433.3194 14.0643 2.5525 2.7800 20.8163 Estimate Std. Error t value 177.0394 6.9227 -19.3949 -6.8405 8.3477 0.7495 9.5544 1.0599 21.208 9.237 -2.030 -6.454 Fixed effects: (Intercept) time treatmentcontrol time:treatmentcontrol Per rendersi conto ’alla buona’ del fatto che il terzo modello sia migliore del secondo `e sufficiente confrontare tra loro i due criteri di informazione, AIC o BIC, anche se in letteratura si sa che questo approccio non `e adeguato ed `e preferibile utilizzare delle tecniche di bootstrapping [4, 5]. Ad esempio, mentre nei primi due modelli il criterio di Akaike si attestava attorno a 2769 e 2768, nel terzo modello si `e ridotto a 2755, come si desiderava (’small is beautiful ’). 2.5 diagnostica del terzo modello misto Concludiamo l’analisi con la diagnostica del modello, ricordando che i linear mixed models si basano sul fatto che i residui siano gaussiani. Eseguendo il codice sottostante si noter`a che i residui nei due trattamenti sono distribuiti secondo una variabile aleatoria normale e che non balzano agli occhi evidenti segni di eteroschedasticit`a: library(lattice) qqmath(~resid(mixedpafi3) | treatment) xyplot ( resid(mixedpafi3) ~ fitted(mixedpafi3) | treatment) 12 3 Interpretazione dei risultati Innanizitutto, dal punto di vista terapeutico, i trattamenti ad alta frequenza vs. convenzionale hanno comportamenti significativamente diversi, in termini di pendenza, ossia di variazione nel tempo dell’indice P aO2 /F iO2 : Fixed effects: ... time:treatmentcontrol Estimate Std. Error t value ... -6.8405 ... 1.0599 ... -6.454 Nel gruppo dei ventilati ad alta frequenza, la risposta temporale di ciascun soggetto `e caratterizzata da una retta di regressione del tipo: y = (6.9 + b1 ) · x + (177.0 + b2 ) + dove b1 e b2 sono due perturbazioni normali di media nulla e deviazione standard σ1 = 2.55 e σ2 = 14.6, mentre per il secondo gruppo: y = (0.1 + b3 ) · x + (157.6 + b2 ) + essendo b3 caratterizzata da σ3 = 2.78 e b2 come nel gruppo precedente. La variabilit`a dei residui `e caratterizzata da σ = 20.82. Volendo conoscere, paziente per paziente, la pendenza e la quota del proprio modello lineare, utilizziamo il comando: ranef(mixedpafi3) 1 ... 35 ... 70 (Intercept) time Cind time Hind 3.48 ... -5.78 ... -3.19 2.38 ... 2.29 ... 0.95 -13.35 ... -12.85 ... -6.12 3.69 ... 1.27 ... 0.43 52.13 -39.31 2.72 e ritornando alla figura di pagina 6, deduciamo che la retta blu del paziente numero 35 ha equazione 13 y = (6.9 + 1.27) · x + (177.0 − 5.78) in accordo col fatto che la pendenza della retta blu `e maggiore della retta arancione, ma la sua quota `e minore. Riferimenti bibliografici [1] Borelli M. (2011). Misure ripetute e dati in cluster: metodi di analisi statistica con R. Quaderno Didattico 56 del Dipartimento di Matematica e Geoscienze, http://www.dmi.units.it/?q=node/635/d/2011 [2] Crawley M. J. (2005). Statistics: An Introduction using R, Wiley. [3] Faraway J. (2004). Linear Models with R, Chapman Hall/CRC. [4] Faraway J. (2005). Extending the Linear Model with R: Generalized Linear, Mixed Effects and Nonparametric Regression Models, Chapman Hall/CRC. [5] Faraway J. (2010). Changes to the Mixed Effects Model chapters in ELM, http://www.maths.bath.ac.uk/∼jjf23/ELM/mixchange.pdf. [6] Pinheiro J.C., Bates D.M., DebRoy S., Sarkar D., the R Core team (2009). nlme: Linear and Nonlinear Mixed Effects Models. R package version 3.1-96. [7] Pinheiro J.C., Bates D.M. (2000). Mixed-Effects Models in S and S-PLUS, Springer. [8] R Development Core Team (2009). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. [9] West B.T., Welch K.B., Galecki A.T. (2007). Linear Mixed Model, Chapman Hall/CRC. 14
© Copyright 2024 Paperzz