statable Statistiek voor studie en onderzoek

Cox-regressie met een tijdsafhankelijke covariaat (een kenmerk verandert in de loop van de tijd)

Kort

Sommige kenmerken veranderen tijdens de waarneming: een therapie begint, er vindt een transplantatie plaats, een laboratoriumwaarde wordt opnieuw gemeten. Zo’n kenmerk behandelen als een vaste groep “ooit overgegaan” veroorzaakt de immortal time bias. De Cox-regressie met een tijdsafhankelijke covariaat voorkomt dat: elke persoon heeft de waarde 0 tot de overgang en de waarde 1 vanaf de overgang. Ze wordt gekozen in de vraag “Hoe lang duurt het tot een gebeurtenis?” onder “Meer opties” → “Een kenmerk verandert in de loop van de tijd”.

De immortal time bias

Wie later overgaat, moest tot dan overleven. Als zo iemand wordt meegeteld in de groep van degenen die vanaf het begin zijn overgegaan, lijkt die groep alleen door deze fout langer te leven. Gemeten in een simulatie met een ware hazard ratio van 1: de vaste groep “ooit overgegaan” geeft gemiddeld een HR van 0,49 en is in elke run significant; de tijdsafhankelijke covariaat geeft 0,99 en in 4% van de runs een significant resultaat. In de Stanford-hartgegevens (transplantatie) zakt de vaste groep naar een HR van 0,27, de tijdsafhankelijke covariaat naar 1,04. Daarom mag de covariaat op elk tijdstip alleen waarden hebben die op dat tijdstip al bekend waren.

De gegevens: intervalvorm

Statable heeft de tabel in intervalvorm (telproces) nodig: een rij per persoon en interval met ID, begin, einde, gebeurtenis en de waarde die in dit interval gold. De intervallen zijn links open en rechts gesloten: (begin, einde]. De waarde geldt vanaf het begin, de gebeurtenis vindt plaats aan het einde. De gebeurtenis (1) staat alleen in de laatste rij van de persoon. Op de kaart worden het ID, het begin en de tijdsafhankelijke covariaat gekozen; de tijd hierboven is het einde. Vóór het rekenen controleert Statable: begin kleiner dan einde, geen overlap, geen gat, hooguit één gebeurtenis per persoon en alleen in de laatste rij.

De assistent “Tijdstippen per persoon → intervallen”

Als de tabel maar één rij per persoon heeft met einde, gebeurtenis en het moment van een overgang (leeg = nooit), bouwt de assistent onder Gegevens > Herstructureren de tabel in intervalvorm: waarde 0 vóór de overgang, 1 vanaf de overgang, de gekozen kolommen van de persoon komen in elke rij. Hij meldt hoeveel personen zijn overgegaan, bij hoeveel de overgang aan het begin of na het einde van de waarneming lag (invoerfout? of al de immortal time bias in de ruwe gegevens) en bij hoeveel op de dag van de gebeurtenis. De nieuwe tabel neemt het gevalsgewicht niet mee.

Overgang op de dag van de gebeurtenis

Valt de overgang op de dag van de gebeurtenis, dan beslist de regel over het resultaat. Strikt (standaard): de overgang geldt pas daarna, de gebeurtenis hoort nog bij de oude waarde. “Telt al mee”: de overgang wordt met de helft van het kleinste tijdsverschil in de gegevens naar voren gehaald (0,5 bij dagen, een fractie bij jaren), waarmee survival de volgorde ook vastlegt; Statable noemt het bedrag. In de Stanford-hartgegevens betreft dit één patiënt en verschuift het de hazard ratio van de transplantatie van 0,90 (strikt) naar 0,99 (telt al mee). Statable noemt altijd de regel en het aantal betrokken personen.

Het resultaat lezen

Iets anders: het tijdsafhankelijke effect

Een tijdsafhankelijke covariaat is niet hetzelfde als een tijdsafhankelijk effect (tt() in R): daar blijft het kenmerk vast (bijvoorbeeld leeftijd) en verandert het effect ervan met de tijd, zodat het proportionaliteit schendt. Statable biedt dit niet aan.

Het resultaat rapporteren

Cox-regressie met een tijdsafhankelijke covariaat: LR-toets χ²(4) = 15,11, p = ,004; HR = 0,99, 95%-BI [0,53; 1,82], p = ,967 (transplantatie); 103 personen in 170 rijen, 75 gebeurtenissen

Voor specialisten

survival::coxph met Surv(start, stop, event), ties = “efron”, Wald-toets en Wald-interval met qnorm(.975); meerdere rijen per persoon zijn prima voor één tijdsafhankelijke covariaat zonder robuuste variantie (de intervallen overlappen niet). Het omvormen draait in JavaScript en komt rij voor rij overeen met survival::tmerge; het model van de survival-vignette (Kalbfleisch en Prentice 1980, tabel 6.1, model 6) wordt tot het laatste afgedrukte cijfer gereproduceerd.

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

Bronnen

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. Survival-vignette “Using time dependent covariates and time dependent coefficients in the Cox model”.

Verwant

Openen in Statable