statable Statistica per lo studio e la ricerca

Regressione di Cox con una covariata tempo-dipendente (una caratteristica cambia nel tempo)

In breve

Alcune caratteristiche cambiano durante l’osservazione: inizia una terapia, avviene un trapianto, un valore di laboratorio viene misurato di nuovo. Trattare una caratteristica simile come un gruppo fisso «è passato prima o poi» crea il bias del tempo immortale (immortal time bias). La regressione di Cox con una covariata tempo-dipendente lo evita: ogni persona porta il valore 0 fino al passaggio e il valore 1 dal passaggio in poi. La si sceglie nella domanda «Quanto tempo passa fino a un evento?» sotto «Altre opzioni» → «Una caratteristica cambia nel tempo».

Il bias del tempo immortale

Chi passa più tardi doveva sopravvivere fino ad allora. Se una persona simile viene contata nel gruppo di chi è passato fin dall’inizio, quel gruppo sembra vivere più a lungo solo per questo errore. Misurato in una simulazione con un vero hazard ratio di 1: il gruppo fisso «è passato prima o poi» dà in media un HR di 0,49 ed è significativo in ogni esecuzione; la covariata tempo-dipendente dà 0,99 e un risultato significativo nel 4% delle esecuzioni. Nei dati del cuore di Stanford (trapianto) il gruppo fisso scende a un HR di 0,27, la covariata tempo-dipendente a 1,04. Per questo la covariata può avere in ogni momento solo valori già noti in quel momento.

I dati: forma a intervalli

Statable richiede la tabella in forma a intervalli (processo di conteggio): una riga per persona e intervallo con identificativo, inizio, fine, evento e il valore che valeva in quell’intervallo. Gli intervalli sono aperti a sinistra e chiusi a destra: (inizio, fine]. Il valore vale dall’inizio, l’evento avviene alla fine. L’evento (1) è solo nell’ultima riga della persona. Nella scheda si scelgono l’identificativo, l’inizio e la covariata tempo-dipendente; il tempo qui sopra è la fine. Prima di calcolare, Statable controlla: inizio minore della fine, nessuna sovrapposizione, nessun buco, al massimo un evento per persona e solo nell’ultima riga.

L’assistente «Punti temporali per persona → intervalli»

Se la tabella ha una sola riga per persona con la fine, l’evento e il momento di un passaggio (vuoto = mai), l’assistente sotto Dati > Ristruttura costruisce la tabella in forma a intervalli: valore 0 prima del passaggio, 1 dal passaggio in poi, le colonne scelte della persona confluiscono in ogni riga. Dice quante persone sono passate, a quante il passaggio cade all’inizio o dopo la fine dell’osservazione (errore di input? o già il bias del tempo immortale (immortal time bias) nei dati grezzi) e a quante nel giorno dell’evento. La nuova tabella non porta con sé il peso del caso.

Passaggio nel giorno dell’evento

Se il passaggio cade nel giorno dell’evento, decide la regola. Rigorosa (predefinita): il passaggio vale solo da lì in poi, l’evento appartiene ancora al vecchio valore. «Conta già»: il passaggio viene anticipato della metà del più piccolo intervallo di tempo nei dati (0,5 per i giorni, una frazione per gli anni), come fa anche survival per fissare l’ordine; Statable nomina l’importo. Nei dati del cuore di Stanford questo riguarda un solo paziente e sposta l’hazard ratio del trapianto da 0,90 (rigorosa) a 0,99 (conta già). Statable nomina sempre la regola e il numero di persone interessate.

Leggere il risultato

Un’altra cosa: l’effetto tempo-dipendente

Una covariata tempo-dipendente non è la stessa cosa di un effetto tempo-dipendente (tt() in R): lì la caratteristica resta fissa (per esempio l’età) e il suo effetto cambia con il tempo, quindi viola la proporzionalità. Statable non offre questa possibilità.

Riportare il risultato

Regressione di Cox con una covariata tempo-dipendente: test LR χ²(4) = 15,11, p = ,004; HR = 0,99, IC al 95% [0,53; 1,82], p = ,967 (trapianto); 103 persone in 170 righe, 75 eventi

Per specialisti

survival::coxph con Surv(start, stop, event), ties = «efron», test di Wald e intervallo di Wald con qnorm(.975); più righe per persona vanno bene per una covariata tempo-dipendente senza varianza robusta (gli intervalli non si sovrappongono). La ristrutturazione gira in JavaScript e concorda riga per riga con survival::tmerge; il modello della vignetta di survival (Kalbfleisch e Prentice 1980, tabella 6.1, modello 6) è riprodotto fino all’ultima cifra stampata.

library(survival)
m <- coxph(Surv(start, stop, event) ~ transplant + age + surgery + year, data = heart_long, ties = "efron")
summary(m)

Fonti

Therneau, T. M. & Grambsch, P. M. (2000). Modeling survival data: extending the Cox model. Springer. Kalbfleisch, J. D. & Prentice, R. L. (1980). The statistical analysis of failure time data. Wiley. Crowley, J. & Hu, M. (1977). Covariance analysis of heart transplant survival data. Journal of the American Statistical Association, 72, 27-36. Vignetta di survival «Using time dependent covariates and time dependent coefficients in the Cox model».

Correlati

Apri in Statable