• Nenhum resultado encontrado

Regressione di Poisson e modelli log-lineari

Una forma molto comune di dato `e il numero di volte in cui un certo evento si verifica, o equivalente-mente il tasso con cui esso si presenta in un numero variabile di osservazioni. Se gli eventi si verificano indipendentemente e allo stesso tasso allora, nel tentativo di legare fra loro la variabile dipendenteY (numero di conteggi) e la matrice deippredittoriX, si pu`o usare la distribuzione di Poisson:

Y ∼P oisson(βX).

Questo tipo di modellizzazione `e inappropriato se gli eventi tendono ad avvenire in modo clusterizzato o se la dipersione del numero dei conteggi non `e ben descritta da una distribuzione di Poisson (che, si ricorda, ha varianza pari al valor medio). In particolare, se la dispersione dei conteggi `e significativa-mente pi`u elevata della loro media, si ha il caso di iperdispersione, che `e associabile a una distribuzione binomiale negativa delle variabiliY.

In Sec. 2.2.2 si `e visto un esempio di classificazione di conteggi in base a due fattori in una tabella di contingenza. L’analisi che viene introdotta ora si basa su un approccio molto pi`u versatile che passa attraverso la definizione e il fit di un modello lineare generalizzato. Data la particolare funzione di link che si usa si parla di modello log-lineare. Le tecniche matematiche che sono alla base di queste modellizzazioni sono ampiamente descritte in [20]. Senza scendere nei dettagli, sono riportati di seguito gli aspetti principali della problematica.

6.5 Regressione di Poisson e modelli log-lineari 123

6.5.1 Modelli log-lineari e tabelle di contingenza

Nel caso di tabella di contingenza a due (o eventualmente pi`u) chiavi di classificazione, si pu`o mo-dellizzare il valore di aspettazione di variabiliY, i cui valori campionariy sono il numero di conteggi nelle celle della tabella (o iper-tabella), come un prodotto di variabili (vedi [20]). La funzione di link logaritmica produce un modello log-lineare:

logY =βX

doveX `e la matrice dei predittori eβ il vettore dei parametri da stimare. InRl’indagine si condurr`a fittando il modello lineare generalizzato, facendo nuovamente uso della funzione glm. Dato che il disegno sperimentale pone spesso dei vincoli sui valori dei conteggi disposti in tabella (ad esempio il totale generale `e fissato dallo sperimentatore, e cos`ı possono esserlo i totali marginali), tali informazioni devono essere incorporate nel modello.

La bont`a di un modello si pu`o stabilire esaminando i residui standardizzati o residui di Pearson, definiti come:

ri= yi−yˆi

√yˆi

doveyi sono le frequenze osservate nelle celle della tabella e ˆyi quelle teoriche previste dal modello.

La somma dei quadrati dei residui `e legata alla distribuzioneχ2 dato che:

x2=X

i

r2i

`e il valore campionario di una variabileχ2 a n−pgradi di libert`a, doven`e il numero totale di celle della tabella epil numero di parametri stimati dal modello (compreso il termineb0).

Per stabilire se una o pi`u variabili possano essere, dal punto di vista statistico, rimosse dal mo-dello senza produrre peggioramenti significativi `e possibile confrontare, come nel caso di regressione logistica, le devianze dei due modelli. Nel caso di modelli log-lineari la devianza `e definita come:

D= 2 X

i

yilogyi

ˆ

yi −(yi−yˆi)

Dato che questo tipo di studio `e solitamente finalizzato a verificare (o confutare) l’indipendenza fra i fattori di classificazione, saranno proprio le interazioni fra i fattori a dover essere analizzate.

Per un esempio pratico si riprendono i dati di Sec. 2.2.2, relativi alla valutazione di tre diverse cure.

In questo studio i pazienti venivano classificati a seconda del fatto che, in seguito alla cura seguita, fossero o no migliorati. Per condurre l’analisi con la funzioneglmsi inserisce il numero di pazienti nel vettoreconteggi, accompagnato dai fattoristato ecura che tengono traccia del miglioramento/non miglioramento del paziente e della cura somministrata:

> conteggi <- c(10,7,18, 21,30,17)

> stato <- factor(c(rep("migliorato", 3), rep("non migliorato", 3)))

> cura <- factor(rep(c("A","B","C"), 2))

Il testχ2 sulla tabella di contingenza era teso a verificare l’ipotesi di indipendenza fra i due fattori o, in altre parole, che la loro interazione non fosse significativa. Il calcolo svolto in Sec. 2.2.2 mostrava che tale interazione `e in questo caso al limite della alta significativit`a, portando a concludere che le tre cure non sono equivalenti.

Per riprodurre questa analisi fittando un modello log-lineare si usa la funzioneglmcon link di tipo poisson. I modelli senza e con interazione si fittano con le chiamate:

> mod <- glm(conteggi ~ stato + cura, family=poisson())

> mod1 <- glm(conteggi ~ stato * cura, family=poisson())

conteggi ulcera stato aspirina

62 G controllo NU

6 G controllo U

39 G caso NU

25 G caso U

53 D controllo NU

8 D controllo U

49 D caso NU

8 D caso U

Tabella 6.2: Studio caso-controllo per stabilire se l’aspirina `e un fattore di rischio per l’ulcera.

Per valutare la significativit`a dell’interazione si ricorre alla funzioneanovaper paragonare le devianze dei due modelli:

> anova(mod, mod1, test="Chisq") Analysis of Deviance Table Model 1: conteggi ~ stato + cura Model 2: conteggi ~ stato * cura

Resid. Df Resid. Dev Df Deviance P(>|Chi|)

1 2 8.6561

2 0 -2.665e-15 2 8.6561 0.0132

Si conclude che, in accordo a quanto trovato precedentemente, l’interazione fra i due fattori `e quasi altamente significativa.

E molto interessante notare che i valori dei conteggi previsti dal modello adittivo coincidono` esattamente con quelli della tabella teorica calcolata durante il testχ2. Infatti questi ultimi sono:

> chisq.test(matrix(conteggi, nc=2))$expected

[,1] [,2]

[1,] 10.53398 20.46602 [2,] 12.57282 24.42718 [3,] 11.89320 23.10680

mentre per il modello log-lineare si possono ottenere con la chiamata:

> e <- mod$fitted # valori previsti dal modello

> matrix(e, nc=2)

[,1] [,2]

[1,] 10.53398 20.46602 [2,] 12.57282 24.42718 [3,] 11.89320 23.10680

Il vantaggio dei modelli log-lineari `e che sono utilizzabili in situazioni pi`u complesse, quando i fattori in gioco sono pi`u di due, come nell’esempio seguente.

Esempio

In uno studio retrospettivo caso-controllo (analizzato in [20]), alcuni pazienti che soffrono di ulcera sono appaiati a pazienti simili che non ne soffrono. I pazienti che soffrono di ulcera sono classificati a seconda del sito dell’ulcera: gastrica (G) o duodenale (D). Si accerta quindi l’uso di aspirina fra i vari pazienti (U = utilizzatori di aspirina, NU = non utilizzatori). I risultati sono riportati in Tab. 6.2.

Si vuole stabilire se l’ulcera `e associata all’uso di aspirina e se l’effetto dell’aspirina `e diverso a seconda del sito dell’ulcera.

Si inizia l’analisi inserendo i dati:

6.5 Regressione di Poisson e modelli log-lineari 125

> conteggi <- c(62,6, 39,25, 53,8, 49,8)

> ulcera <- factor(c(rep("G",4), rep("D",4)))

> stato <- factor(rep(c("cont","cont","caso","caso"),2))

> aspirina <- factor(rep(c("NU","U"),4))

Per stabilire se l’aspirina `e un fattore di rischio per l’ulcera, si deve accertare la significativit`a dell’interazione fra le variabiliaspirinaestatodopo avere corretto per gli effetti delle altre variabili.

I modelli da confrontare sono quindi quello che contiene le variabilistatoeulcera, la loro interazione e la variabileaspirinacon quello che contiene anche l’interazione fra le variabiliaspirinaestato. I due modelli si fittano con le chiamate:

> mod <- glm(conteggi ~ ulcera * stato + aspirina, family=poisson())

> mod2 <- glm(conteggi ~ ulcera * stato + aspirina * stato, family=poisson())

Il modo migliore per stabilire la significativit`a dell’interazione `e paragonare le devianze dei due modelli:

> anova(mod, mod2, test="Chisq") Analysis of Deviance Table

Model 1: conteggi ~ ulcera * stato + aspirina

Model 2: conteggi ~ ulcera * stato + aspirina * stato Resid. Df Resid. Dev Df Deviance P(>|Chi|)

1 3 21.7893

2 2 10.5384 1 11.2508 0.0008

La differenza fra i modelli `e altamente significativa. Si conclude quindi che l’aspirina pu`o essere considerata un fattore di rischio per l’ulcera. Un modo alternativo per verificare la significativit`a del termine di interazione `e quello di analizzare il test di Wald che viene presentato dalla chiamata:

> summary(mod2)

tuttavia, data la sua bassa potenza, per stabilire la significativit`a di un qualunque coefficiente `e preferibile eseguire il test sulle devianze.

Per stabilire se l’aspirina `e associata in modo differete a i siti di ulcera, si fitta il modello che comprende anche l’interazione fra le variabiliaspirinaeulcera:

> mod3 <- glm(conteggi ~ ulcera*stato*aspirina - ulcera:stato:aspirina, + family=poisson())

> anova(mod2, mod3, test="Chisq") Analysis of Deviance Table

Model 1: conteggi ~ ulcera * stato + aspirina * stato

Model 2: conteggi ~ ulcera * stato * aspirina - ulcera:stato:aspirina Resid. Df Resid. Dev Df Deviance P(>|Chi|)

1 2 10.5384

2 1 6.2830 1 4.2555 0.0391

Il confronto di questo modello con il precedente raggiunge la significativit`a. Per interpretare questo risultato si possono esaminare i coefficienti del modello fittato:

> summary(mod3) [...]

Coefficients:

Estimate Std. Error z value Pr(>|z|) (Intercept) 3.81846 0.14515 26.307 < 2e-16 ***

ulceraG -0.06977 0.20415 -0.342 0.73254 statocont 0.21517 0.19172 1.122 0.26174

aspirinaU -1.37910 0.29514 -4.673 2.97e-06 ***

ulceraG:statocont 0.10574 0.26147 0.404 0.68590 ulceraG:aspirinaU 0.70005 0.34603 2.023 0.04306 * statocont:aspirinaU -1.14288 0.35207 -3.246 0.00117 **

(Dispersion parameter for poisson family taken to be 1) Null deviance: 127.749 on 7 degrees of freedom Residual deviance: 6.283 on 1 degrees of freedom AIC: 59.898

Dal fatto che il penultimo coefficiente del modello sia positivo si conclude che l’uso di aspirina `e un fattore di rischio maggiore per l’ulcera gastrica rispetto a quella duodenale.

Per quanto riguarda la bont`a di adattamento del modello finale, i residui di Pearson si ottengono con la chiamata:

> residuals(mod3,"pearson")

1 2 3 4 5 6 7

0.4529949 -1.1264726 -0.5318374 0.7468503 -0.4612175 1.6275938 0.5136050 8

-1.0235214

da cui si ha la statisticax2:

> sum(residuals(mod3,"pearson")^2) [1] 6.48795

Analizzando l’output della funzione summary dato in precedenza si nota che vi `e un solo grado di libert`a residuo, quindi il valoreP per il test di bont`a d’adattamento `e:

> 1 - pchisq(6.48795, 1) [1] 0.01086082

da cui si conclude che il modello non fitta particolarmente bene i dati pur impiegando 7 parametri per descrivere 8 rilevazioni.

Capitolo 7

Analisi della sopravvivenza

In alcuni esperimenti si misurano i tempi a partire da un ben definito istante iniziale fino al verificarsi di un particolare evento (che viene normalmente detto “failure” o “decesso”). Ad esempio, in campo medico rientrano in tale categoria studi longitudinali su pazienti a cui `e stata diagnosticata una malattia fino al momento del loro decesso, mentre in campo ingegneristico si pu`o pensare ai tempi di vita di un particolare componente meccanico o elettronico. Dati di questo genere sono caratterizzati solitamente da una distribuzione fortemente asimmetrica con una lunga coda destra. Dato che alcuni soggetti “sopravvivono” oltre il tempo di osservazione si ha il problema di non conoscere in quale particolare istante futuro essi andranno incontro al “decesso”. In questo caso si parla di dati troncati o censored. Il problema generale `e quello di valutare la probabilit`a di sopravvivenza in funzione del tempo, eventualmente in dipendenza da altre variabili in studio.