Welche Optionen stehen im proportionalen Hazard-Regressionsmodell zur Verfügung, wenn Schönfeld-Residuen nicht gut sind?


15

Ich mache eine Cox-proportionale Hazards-Regression mit R coxph, die viele Variablen enthält. Die Martingale-Residuen sehen großartig aus, und die Schönfeld-Residuen sind für FAST alle Variablen großartig. Es gibt drei Variablen, deren Schönfeld-Residuen nicht flach sind, und die Variablen sind so beschaffen, dass es sinnvoll ist, sie mit der Zeit zu variieren.

Das sind Variablen, die mich nicht wirklich interessieren, also wäre es in Ordnung, sie zu Schichten zu machen. Alle von ihnen sind jedoch kontinuierliche Variablen, keine kategorialen Variablen. Daher empfinde ich Schichten als keinen gangbaren Weg *. Ich habe versucht, Interaktionen zwischen den Variablen und der Zeit aufzubauen, wie hier beschrieben , aber wir erhalten den Fehler:

  In fitter(X, Y, strats, offset, init, control, weights = weights,  :
  Ran out of iterations and did not converge

Ich arbeite mit fast 1000 Datenpunkten und arbeite mit einem halben Dutzend Variablen mit jeweils vielen Faktoren. Es scheint also, als würden wir die Grenzen der Aufteilung und Aufteilung dieser Daten erweitern. Leider sind alle einfacheren Modelle, die ich mit weniger eingeschlossenen Variablen ausprobiert habe, deutlich schlechter (z. B. sind Schönfeld-Residuen für mehr Variablen krümeliger).

Welche Möglichkeiten habe ich? Da mir diese besonders schlecht verhaltenen Variablen egal sind, möchte ich ihre Ausgabe einfach ignorieren, aber ich vermute, dass dies keine gültige Interpretation ist!

* Einer ist stetig, einer ist eine ganze Zahl mit einem Bereich von über 100 und einer ist eine ganze Zahl mit einem Bereich von 6. Vielleicht Binning?


2
Wie wäre es mit einem erweiterten Cox-Modell mit einer Zeitinteraktion für die zeitabhängigen Variablen?
Kirk

Was ist mit der Option für zeitabhängige Kovariaten (wie -tvc- in Stata)?
Carlo Lazzaro,

Antworten:


1

Am elegantesten wäre es, ein parametrisches Überlebensmodell (Gompertz, Weibull, Exponential, ...) zu verwenden, wenn Sie eine Vorstellung davon haben, wie das Grundrisiko aussehen könnte.

Wenn Sie bei Ihrem Cox-Modell bleiben möchten, können Sie ein erweitertes Cox-Modell mit zeitabhängigen Koeffizienten verwenden . Denken Sie daran, dass es auch erweiterte Cox-Modelle mit zeitabhängigen Kovariaten gibt - diese lösen Ihr Problem nicht!

Für R siehe hier: http://cran.r-project.org/web/packages/survival/vignettes/timedep.pdf


1

Ein paar Ideen -

1) Probieren Sie den Royston-Parmar-Modellierungsansatz aus, z. B. http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0047804 und die darin enthaltenen Referenzen. Wir haben damit nützliche Ergebnisse erzielt.

2) Das Zentrieren und Standardisieren kontinuierlicher Variablen kann numerisch nützlich sein.

3) In vielen Modellen mit Faktoren mit vielen Ebenen gibt es einige Ebenen, in denen im Grunde keine Daten vorliegen. Das Zusammenführen von Ebenen, um diese zu entfernen, kann jedoch basierend auf guten inhaltlichen Kriterien sehr hilfreich sein.

Viel Glück!


1

Wenn die Verwendung einer Interaktion mit der zugrunde liegenden Zeit nicht funktioniert, können Sie die Schrittfunktionen ausprobieren (weitere Informationen finden Sie in der Therneau-Vignette 2016 ).

Schrittfunktionen werden in bestimmten Koeffizienten in bestimmten Intervallen geschichtet. Nachdem Sie Ihre geplotteten Schönfeld-Residuen für die problematischen Kovariaten (dh plot(cox.zph(model.coxph))) gesehen haben, müssen Sie visuell prüfen, wo sich der Winkel der Linien ändert. Versuchen Sie, einen oder zwei Punkte zu finden, an denen sich die Beta deutlich unterscheidet. Angenommen, dies geschah zu den Zeitpunkten 10 und 20. Wir erstellen also Daten mit survSplit()dem survivalPaket, das zu den oben genannten Zeitpunkten einen Datenrahmen für die spezifische Datenmodellgruppierung erstellt:

step.data <- survSplit(Surv(t1, t2, event) ~ 
                      x1 + x2,
                      data = data, cut = c(10, 20), episode = "tgroup")

Führen Sie dann das cox.phModell mit der strataFunktion als Interaktion mit den problematischen Variablen aus (fügen Sie wie bei der Interaktion mit der Zeit keinen Haupteffekt für die Zeit oder die Schichten hinzu):

> model.coxph2 <- coxph(Surv(t1, t2, event) ~ 
                          x1 + x2:strata(tgroup), data = step.data)

Und das sollte helfen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.