Più righe della stessa persona o dello stesso gruppo: cluster e fragilità
In breve
Se più righe appartengono alla stessa persona o allo stesso gruppo (cucciolate, centri, eventi ripetuti), non sono indipendenti. Nella scheda «Quanto tempo passa fino a un evento?» l’identificatore ha due vie sotto «Altre opzioni». Il cluster (predefinito) cambia solo gli errori standard (robusti, sandwich); gli hazard ratio restano esattamente gli stessi e valgono in media sui gruppi (marginale). La fragilità (gamma, avanzato) dà a ogni gruppo una tendenza propria e ne stima la varianza; l’hazard ratio vale all’interno dello stesso gruppo (condizionale). Statable non calcola mai entrambi insieme. L’identificatore va a R come codice numerico, non come testo.
Un esempio con dei numeri
rats: 300 ratti in 100 cucciolate, 42 eventi, trattamento rx. Senza identificatore: b = 0,714, errore standard 0,309, HR = 2,04, p = ,021. Con cluster: lo stesso b, errore standard robusto 0,271, z = 2,63, p = ,008. Con la fragilità (gamma, Efron): b = 0,727, HR = 2,07, varianza della fragilità 2,02, p = ,022. Il test per la varianza 0 è un rapporto di verosimiglianza: χ² = 10,23, p dimezzato = ,0007.
Limiti e trappole
- Condizionale e marginale sono numeri diversi. Misurato (100 gruppi da 5, vero b = 1, varianza della fragilità 2, 150 ripetizioni): Cox senza fragilità o con cluster in media 0,749 (± 0,013), fragilità 1,01 (± 0,015). Non è una debolezza del cluster, ma un’altra domanda.
- Il valore p della riga «frailty» nell’output di R non è un test per la varianza 0. Statable usa il rapporto di verosimiglianza con p dimezzato, perché la varianza non può essere inferiore a 0 (bordo dello spazio dei parametri).
- La varianza può arrivare a 0 (esempio kidney: 5·10⁻⁹). Allora non ci sono differenze tra i gruppi oltre ai predittori, e i coefficienti sono come senza fragilità. Statable lo dice.
- Almeno due gruppi con almeno due righe ciascuno; altrimenti il calcolo è bloccato. Sotto i 20 gruppi Statable avverte (regola empirica senza fonte): gli errori standard e la varianza sono allora incerti. I gruppi con una sola riga non aggiungono nulla.
- Si assume che la fragilità abbia distribuzione gamma. Una fragilità con distribuzione normale (coxme) dà altri numeri: per rats b = 0,730 e varianza 1,32. Statable non la offre.
- Tempi uguali: Efron (predefinito) o Breslow, i numeri differiscono leggermente (rats: b = 0,727 contro 0,721; varianza 2,02 contro 1,98). Con un identificatore non ci sono covariate dipendenti dal tempo.
Riportare il risultato
Regressione di Cox con cluster (100 gruppi): HR = 2,04, IC al 95% [1,20; 3,47], p = ,008 (trattamento); 300 righe, 42 eventi
Per specialisti
library(survival)
m1 <- coxph(Surv(time, status) ~ rx + cluster(litter), data = rats)
m2 <- coxph(Surv(time, status) ~ rx + frailty(litter, distribution = "gamma"), data = rats)
m2$history[[1]]$theta # Varianz der Frailty