statable Statistik für Studium und Forschung

Cox-Regression mit zeitabhängiger Größe (eine Angabe ändert sich im Lauf der Zeit)

Kurz

Manche Angaben ändern sich im Lauf der Beobachtung: eine Therapie beginnt, eine Transplantation findet statt, ein Laborwert wird neu gemessen. Wer eine solche Angabe als feste Gruppe „jemals gewechselt“ behandelt, erzeugt den Unsterblichkeitsfehler (immortal time bias). Die Cox-Regression mit zeitabhängiger Größe vermeidet ihn: Jede Person trägt bis zum Wechsel den Wert 0 und ab dem Wechsel den Wert 1. Gewählt wird sie in der Frage „Wie lange dauert es bis zu einem Ereignis?“ unter „Weitere Wege“ → „Eine Angabe ändert sich im Lauf der Zeit“.

Der Unsterblichkeitsfehler

Wer erst später wechselt, musste bis dahin überleben. Zählt man ihn von Anfang an zur Gruppe der Gewechselten, sieht diese Gruppe nur wegen dieses Fehlers länger lebend aus. Gemessen an einer Simulation mit wahrer Hazard Ratio 1: Die feste Gruppe „jemals gewechselt“ gibt im Mittel HR 0,49 und ist in allen Läufen signifikant; die zeitabhängige Größe gibt 0,99 und in 4 % der Läufe ein signifikantes Ergebnis. In den Stanford-Herzdaten (Transplantation) fällt die feste Gruppe auf HR 0,27, die zeitabhängige Größe auf 1,04. Darum darf die Größe zu jedem Zeitpunkt nur Werte haben, die zu diesem Zeitpunkt schon bekannt waren.

Die Daten: Intervall-Form

Statable braucht die Tabelle in Intervall-Form (Zählprozess): eine Zeile je Person und Abschnitt mit Kennung, Start, Ende, Ereignis und dem Wert, der in diesem Abschnitt galt. Die Abschnitte sind links offen und rechts geschlossen: (Start, Ende]. Der Wert gilt ab dem Start, das Ereignis geschieht am Ende. Das Ereignis (1) steht nur in der letzten Zeile der Person. In der Karte werden Kennung, Start und die zeitabhängige Größe gewählt; die Zeit oben ist das Ende. Vor dem Rechnen prüft Statable: Start kleiner als Ende, keine Überlappung, keine Lücke, höchstens ein Ereignis je Person und nur in der letzten Zeile.

Der Assistent „Zeitpunkte je Person → Intervalle“

Hat die Tabelle nur eine Zeile je Person mit Ende, Ereignis und dem Zeitpunkt eines Wechsels (leer = nie), baut der Assistent unter Daten > Umstrukturieren die Tabelle in Intervall-Form: Wert 0 vor dem Wechsel, 1 ab dem Wechsel, die gewählten Spalten der Person laufen in jede Zeile mit. Er sagt, wie viele Personen wechselten, wie viele den Wechsel am Anfang oder nach dem Ende der Beobachtung hatten (Eingabefehler? oder schon der Unsterblichkeitsfehler in den Rohdaten) und wie viele am Tag des Ereignisses. Das Fallgewicht nimmt die neue Tabelle nicht mit.

Wechsel am Tag des Ereignisses

Fällt der Wechsel auf den Tag des Ereignisses, entscheidet die Regel über das Ergebnis. Streng (Voreinstellung): Der Wechsel gilt erst danach, das Ereignis gehört noch zum alten Wert. „Zählt schon“: Der Wechsel wird um die Hälfte des kleinsten Zeitabstands in den Daten vorgezogen (bei Tagen 0,5, bei Jahren ein Bruchteil), so legt auch survival die Reihenfolge fest; Statable nennt den Betrag. In den Stanford-Herzdaten betrifft das einen einzigen Patienten und verschiebt die Hazard Ratio der Transplantation von 0,90 (streng) auf 0,99 (zählt schon). Statable nennt die Regel und die Zahl der Betroffenen immer.

Ergebnis lesen

Etwas anderes: der zeitabhängige Effekt

Eine zeitabhängige Größe ist nicht dasselbe wie ein zeitabhängiger Effekt (tt() in R): Dabei bleibt die Angabe fest (zum Beispiel das Alter), ihre Wirkung ändert sich mit der Zeit, also verletzt sie die Proportionalität. Das bietet Statable nicht an.

Ergebnis berichten

Cox-Regression mit zeitabhängiger Größe: LR-Test χ²(4) = 15,11, p = ,004; HR = 0,99, 95 %-KI [0,53; 1,82], p = ,967 (Transplantation); 103 Personen in 170 Zeilen, 75 Ereignisse

Für Fachleute

survival::coxph mit Surv(start, stop, event), ties = "efron", Wald-Test und Wald-Intervall mit qnorm(,975); mehrere Zeilen je Person sind für eine zeitabhängige Größe ohne robuste Varianz in Ordnung (die Abschnitte überlappen nicht). Der Umformer rechnet in JavaScript und stimmt mit survival::tmerge Zeile für Zeile überein; das Modell der survival-Vignette (Kalbfleisch und Prentice 1980, Tabelle 6.1, Modell 6) wird bis zur letzten gedruckten Stelle getroffen.

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

Quellen

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“.

Verwandt

In Statable öffnen