Plusieurs lignes de la même personne ou du même groupe : cluster et fragilité
En bref
Si plusieurs lignes appartiennent à la même personne ou au même groupe (portées, centres, événements répétés), elles ne sont pas indépendantes. Dans la carte « Combien de temps faut-il avant un événement ? », l’identifiant offre deux voies sous « Plus d’options ». Cluster (par défaut) ne modifie que les erreurs types (robustes, sandwich) ; les hazard ratios restent exactement les mêmes et valent en moyenne sur les groupes (marginal). La fragilité (gamma, avancé) donne à chaque groupe une tendance propre et estime sa variance ; le hazard ratio vaut au sein d’un même groupe (conditionnel). Statable ne calcule jamais les deux à la fois. L’identifiant est transmis à R sous forme de code numérique, pas de texte.
Un exemple avec des nombres
rats : 300 rats dans 100 portées, 42 événements, traitement rx. Sans identifiant : b = 0,714, erreur type 0,309, HR = 2,04, p = ,021. Avec cluster : même b, erreur type robuste 0,271, z = 2,63, p = ,008. Avec la fragilité (gamma, Efron) : b = 0,727, HR = 2,07, variance de la fragilité 2,02, p = ,022. Le test de la variance 0 est un rapport de vraisemblance : χ² = 10,23, p divisé par deux = ,0007.
Limites et pièges
- Conditionnel et marginal sont des nombres différents. Mesuré (100 groupes de 5, vrai b = 1, variance de la fragilité 2, 150 tirages) : Cox sans fragilité ou avec cluster en moyenne 0,749 (± 0,013), fragilité 1,01 (± 0,015). Ce n’est pas une faiblesse de cluster, mais une autre question.
- La valeur p de la ligne « frailty » dans la sortie de R n’est pas un test de la variance 0. Statable utilise le rapport de vraisemblance avec un p divisé par deux, car la variance ne peut pas être inférieure à 0 (bord de l’espace des paramètres).
- La variance peut tomber à 0 (exemple kidney : 5·10⁻⁹). Il n’y a alors aucune différence entre les groupes au-delà des prédicteurs, et les coefficients sont les mêmes que sans fragilité. Statable le dit.
- Au moins deux groupes d’au moins deux lignes chacun ; sinon le calcul est bloqué. Sous 20 groupes, Statable avertit (règle empirique sans source) : les erreurs types et la variance sont alors incertaines. Les groupes d’une seule ligne n’apportent rien.
- On suppose que la fragilité suit une distribution gamma. Une fragilité de distribution normale (coxme) donne d’autres nombres : pour rats, b = 0,730 et variance 1,32. Statable ne la propose pas.
- Temps identiques : Efron (par défaut) ou Breslow, les nombres diffèrent légèrement (rats : b = 0,727 contre 0,721 ; variance 2,02 contre 1,98). Il n’y a pas de covariables dépendantes du temps avec un identifiant.
Rapporter le résultat
Régression de Cox avec cluster (100 groupes) : HR = 2,04, IC à 95 % [1,20 ; 3,47], p = ,008 (traitement) ; 300 lignes, 42 événements
Pour les spécialistes
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