• Non ci sono risultati.

Stime campionarie

Per affrontare il problema di dare una stima della funzione di sopravvivenza S(t) si consideri un

gruppo di n pazienti. Sia Yi(t) con i, 1, . . . , n un indicatore del fatto che il paziente i-esimo sia vivo

e a rischio al tempo t. Yi(t) assume valore 1 in caso che la condizione sia soddisfatta e 0 altrimenti

(paziente deceduto o censored). Si ha quindi che Y (t) =P

iYi(t) `e il numero di pazienti a rischio al

tempo t. Si definisce anche d(t) il numero di decessi che avvengono al tempo t.

La stima campionaria di sopravvivenza pi`u comune `e quella di Kaplan-Meier (KM), che `e un

prodotto di probabilit`a di sopravvivenza:

ˆ

SKM = Y

ti<t

Y (ti) − d(ti)

Y (ti) (7.2)

Graficamente la funzione di Kaplan-Meier `e una curva a gradini che ha una caduta in ogni istante ti

in cui si verificano dei decessi. Solitamente, su questa curva vengono riportati con un simbolo grafico (in R un “+”) i tempi a cui un paziente esce dallo studio a causa del censoring.

Il modello di KM `e valido a patto che siano rispettate alcune assunzioni: • Controllo delle variabili di confondimento

• Indipendenza del censoring (troncamento) • Numero limitato di dati censored

• Campione di dimensione sufficientemente grande

7.2.1 Controllo delle variabili di confondimento

Come in ogni esperimento, nel raccogliere i dati bisogna assicurarsi di misurare sui pazienti tutte le variabili che si sospetta possano influenzarne la sopravvivenza. Nel caso in cui ci si attende che la stima della sopravvivenza possa essere diversa all’interno del campione a causa dell’effetto di una di tali variabili `e necessario apportare una correzione all’analisi, ricorrendo alla stratificazione del modello, una tecnica analoga all’introduzione di variabili di blocco nell’analisi di una modello ANOVA. Si

cercher`a quindi di introdurre degli strati all’interno dei quali i pazienti siano il pi`u omogenei possibile

fra loro.

7.2.2 Indipendenza del censoring

Perch´e il modello sia valido `e necessario che il censoring sia indipendente dal gruppo di classificazione. Se pazienti troppo malati sono eliminati dallo studio, o viceversa pazienti che sopravvivono molto a lungo vanno persi al follow-up si introducono distorsioni sulle stime di sopravvivenza. In secondo luogo bisogna essere certi che la perdita al follow-up di un paziente non influenzi la perdita di altri pazienti (indipendenza fra censoring e soggetti).

7.2.3 Numero limitato di dati censored

Uno studio pu`o terminare con molti dati censored, o perch´e si hanno perdite al follow-up o perch´e

molti soggetti sono ancora vivi al termine dello studio. In questo secondo caso vi `e il sospetto di una cattiva pianificazione della durata dell’esperimento, che avrebbe dovuto essere maggiore. La presenza di molti dati censored influisce sulla stima della curva di KM dato che diminuisce il numero di pazienti a rischio, rendendo la stima di sopravvivenza meno precisa di quanto non si avrebbe in presenza di un numero ridotto di dati censored.

7.2 Stime campionarie 135

stato mesi et`a gruppo stato mesi et`a gruppo stato mesi et`a gruppo

1 23 50 0 0 104 56 1 1 22 56 0 0 134 57 1 0 125 57 1 0 69 54 1 1 20 49 0 0 121 57 1 0 54 66 0 0 116 67 1 1 24 60 1 1 14 66 1 1 7 63 0 0 137 67 1 0 65 64 1 1 84 72 1 0 109 72 1 1 18 64 1 0 80 70 1 0 107 68 1 0 39 66 1 0 41 69 1 0 121 71 1 0 123 72 1 0 20 64 0 1 10 46 0 0 137 71 1 0 137 63 1 0 16 69 0 0 104 66 1 1 38 66 1 0 6 72 1 1 29 67 1 0 117 50 1 1 31 58 0 0 123 71 0 1 23 57 0 1 35 66 1 0 67 72 1 1 18 69 1 0 18 70 0 1 12 69 0 1 9 62 0 0 104 66 1 1 12 63 0 0 76 58 0 0 108 68 1 1 16 71 0 1 104 55 1 0 9 53 0 1 13 69 1 0 20 68 1 1 50 55 0 1 49 64 0 1 16 65 1 0 50 70 1 0 110 73 1 1 54 71 0 0 128 68 1 1 5 63 0

Tabella 7.1: Valori registrati su un campione di 60 pazienti con carcinoma polmonare nel caso dell’Esempio 7.2.4.

7.2.4 Campione di dimensione sufficientemente grande

Questo punto `e strettamente legato al precedente. Le curve di KM hanno una precisione accettabile solo in presenza di un numero sufficientemente grande di osservazioni.

Esempio

In uno studio longitudinale un gruppo di 60 pazienti che hanno sviluppato un carcinoma polmonare di tipo NSCLC (Non Small Cell Lung Cancer) viene seguito dopo un intervento chirurgico volto a rimuovere la massa tumorale. I pazienti sono classificati per et`a al momento dell’intervento e a seconda della valutazione del tumore eseguita sulla scala T (dimensione tumorale, T = 1, 2, 3), N (infiltrazione linfonodale, N = 0, 1, 2. N = 0 indica assenza di infiltrazione). La variabile gruppo viene costruita in modo che valga 1 per pazienti di classe N 0 e T 1 o T 2, mentre valga 0 altrimenti. Si vuole valutare la sopravvivenza generale e in relazione alle due variabili in studio. I dati sono presentati in Tab. 7.1. La variabile stato vale 1 se il paziente `e deceduto e 0 se `e ancora vivo al termine del periodo di osservazione, mentre mesi `e il periodo di tempo per cui il paziente `e stato seguito dopo l’intervento chirurgico.

La stima di KM per la sopravvivenza si ottiene facilmente facendo uso delle funzioni Surv e survf it

della libreria standard survival. Se i dati sono stati inseriti nel data frame car si pu`o avere la stima

della funzione di sopravvivenza generale con le chiamate: > library(survival)

> mod <- survfit( Surv(mesi, stato), data=car) > mod

Call: survfit(formula = Surv(mesi, stato), data = car)

n events rmean se(rmean) median 0.95LCL 0.95UCL

0 20 40 60 80 100 120 140 0.0 0.2 0.4 0.6 0.8 1.0 t (mesi) S(t)

Figura 7.1: Stimatore di KM della curva di sopravvivenza generale.

La funzione Surv accetta in questo caso due argomenti: il primo `e il tempo per cui il paziente `e stato seguito dal momento in cui entra nello studio, il secondo lo stato alla fine del periodo di osservazione. Tale variabile deve essere codificata 1/0 (o TRUE/FALSE) con il valore 1 (TRUE) a indicare il decesso. L’output della funzione Surv viene usato dalla funzione survf it come variabile dipendente nella costruzione dei modelli di sopravvivenza di KM. Nel caso di sopravvivenza generale il modello non prevede nessun predittore. In output la funzione riporta il numero di pazienti in studio, il numero di decessi (events), la stima del tempo medio di sopravvivenza con il suo errore standard (vedi [54] per i dettagli di calcolo) e la mediana di sopravvivenza con il suo intervallo di confidenza. In questo caso

si vede che la mediana non `e calcolabile (Inf); ci`o dipende dal fatto che tale valore `e definito come

l’istante di tempo in cui la curva stimata passa per il valore S(t) = 0.5, cio`e l’istante in cui il 50% dei

pazienti `e deceduto. Dato che nell’esempio in questione ci`o non avviene mai tale valore risulta non

calcolabile. L’intervallo di confidenza della mediana `e valutato in modo analogo considerando i tempi in cui le curve che delimitano l’intervallo di confidenza di S(t) passano per il valore 0.5. Ovviamente se la mediana risulta non calcolabile altrettanto avviene per l’estremo superiore del suo intervallo di confidenza.

Il grafico della funzione di sopravvivenza di KM, dato in Fig. 7.1, si ottiene con la chiamata: > plot(mod, xlab="t (mesi)", ylab="S(t)")

Le curve tratteggiate rappresentano l’intervallo di confidenza di S(t).

La dipendenza della sopravvivenza dalle variabili gruppo ed eta pu`o essere studiata aggiungendo i

predittori al modello da fittare. Per valutare l’effetto della classificazione tumorale sulla sopravvivenza si usa la chiamata:

> mod2 <- survfit( Surv(mesi, stato) ~ gruppo, data=car) > mod2

Call: survfit(formula = Surv(mesi, stato) ~ gruppo, data = car) n events rmean se(rmean) median 0.95LCL 0.95UCL

gruppo=FALSE 22 15 42.7 9.72 23 16 Inf

gruppo=TRUE 38 11 105.6 8.18 Inf Inf Inf

Si vede che la media dei tempi di sopravvivenza nel gruppo 0 (FALSE) `e notevolmente inferiore a quelle del gruppo 1 (43 mesi contro 106). Il plot delle due curve (Fig. 7.2) evidenzia come la variabile

7.2 Stime campionarie 137 0 20 40 60 80 100 120 140 0.0 0.2 0.4 0.6 0.8 1.0 t (mesi) S(t)

Figura 7.2: Stimatori di KM delle curve di sopravvivenza in relazione alla classificazione tumorale. La

curva rossa si riferisce a pazienti di gruppo 1 ed evidenzia sopravvivenza pi`u lunga rispetto ai pazienti

di gruppo 0.

in esame sia importante per prevedere la sopravvivenza di un soggetto. Il comando per ottenere il grafico `e:

> plot(mod2, xlab="t (mesi)", ylab="S(t)", col=c("black","red"))

in cui si specificano i colori con cui disegnare le due curve. Si noti che, nel caso le curve di sopravvivenza

siano pi`u di una, i loro intervalli di confidenza non vengono rappresentati. Tale scelta consente una pi`u

facile lettura del grafico evitando di appesantirlo con la visualizzazione contemporanea di troppe curve.

Eventualmente si pu`o far ricorso all’opzione conf.int = T RU E che cambia questo comportamento:

> plot(mod2, xlab="t (mesi)", ylab="S(t)", col=c("black","red"), conf.int=TRUE)

Per valutare precisamente la differenza fra le due curve si pu`o ricorrere al comando survdif f , che

esegue un log-rank test per confrontare le curve di sopravvivenza (si veda [2] pag 576 per la matematica alla base del test):

> survdiff(Surv(mesi, stato) ~ gruppo, data=car) Call:

survdiff(formula = Surv(mesi, stato) ~ gruppo, data = car) N Observed Expected (O-E)^2/E (O-E)^2/V

gruppo=FALSE 22 15 6.26 12.22 16.9

gruppo=TRUE 38 11 19.74 3.87 16.9

Chisq= 16.9 on 1 degrees of freedom, p= 3.99e-05

Dal valore P del test si conclude che la differenza tra le due curve `e altamente significativa. La

funzione survdif f accetta anche l’opzione rho che pu`o assumere valori fra 0 (valore di default) e 1.

Tale opzione controlla il tipo di test da eseguire secondo la famiglia Gρ di Harrington e Fleming [32].

Il valore rho = 0 corrisponde al log-rank test, mentre rho = 1 esegue il test di Peto-Wilcoxon. I test

differiscono nel modo in cui pesano i decessi: dato che essi vengono pesati con la funzione ˆS(t)ρ, il

Per quanto riguarda l’analisi rispetto alla variabile continua eta si procede introducendo al suo posto una variabile categoriale lev.eta che separa i pazienti in due gruppi: quelli che hanno et`a inferiore

alla mediana delle et`a (a cui si assegna il livello 1) e quelli che invece sono pi`u anziani (livello 0):

> car$lev.eta <- car$eta < median(car$eta)

> mod3 <- survfit( Surv(mesi, stato) ~ lev.eta, data=car) > mod3

Call: survfit(formula = Surv(mesi, stato) ~ lev.eta, data = car) n events rmean se(rmean) median 0.95LCL 0.95UCL

lev.eta=FALSE 33 10 100.9 9.45 Inf 84 Inf

lev.eta=TRUE 27 16 66.9 11.17 31 22 Inf

In questo caso si vede che la sopravvivenza media dei pazienti pi`u anziani risulta maggiore. Le due

curve differiscono in maniera significativa come risulta dal log-rank test: > survdiff( Surv(mesi, stato) ~ lev.eta, data=car)

Call:

survdiff(formula = Surv(mesi, stato) ~ lev.eta, data = car) N Observed Expected (O-E)^2/E (O-E)^2/V

lev.eta=FALSE 33 10 15.7 2.07 5.3

lev.eta=TRUE 27 16 10.3 3.16 5.3

Chisq= 5.3 on 1 degrees of freedom, p= 0.0214

Per valutare la sopravvivenza in relazione alla variabile gruppo tenendo conto dell’effetto della

variabile di confondimento lev.eta, si pu`o utilizzare un modello stratificato. In R la funzione per

introdurre la stratificazione `e strata:

> survdiff( Surv(mesi, stato) ~ gruppo + strata(lev.eta), data=car) Call:

survdiff(formula = Surv(mesi, stato) ~ gruppo + strata(lev.eta), data = car)

N Observed Expected (O-E)^2/E (O-E)^2/V

gruppo=FALSE 22 15 7.68 6.97 11.3

gruppo=TRUE 38 11 18.32 2.92 11.3

Chisq= 11.3 on 1 degrees of freedom, p= 0.000778

Come si vede il log-rank test paragona solamente le sopravvivenze classicando i pazienti per gruppo, ma tenendo conto della contemporanea classificazione per lev.eta (si veda ad esempio [2] pag 581 per i dettagli del test in presenza di stratificazione). Anche in questo caso si conclude che vi `e differenza altamente significativa fra le sopravvivenze dei pazienti nelle due classi.