Wie kann eine Kreuzvalidierung mit einem Cox-Modell für proportionale Gefahren durchgeführt werden?


15

Angenommen, ich habe ein Vorhersagemodell für das Auftreten einer bestimmten Krankheit in einem Datensatz (dem Datenbestand zur Modellbildung) erstellt und möchte nun überprüfen, wie gut das Modell in einem neuen Datensatz (dem Validierungsdatenbestand) funktioniert. Für ein mit logistischer Regression erstelltes Modell würde ich die vorhergesagte Wahrscheinlichkeit für jede Person im Validierungsdatensatz basierend auf den Modellkoeffizienten berechnen, die aus dem Modellbildungsdatensatz erhalten wurden, und dann, nachdem ich diese Wahrscheinlichkeiten bei einem bestimmten Grenzwert dichotomisiert habe, kann ich eine 2x2-Tabelle erstellen das erlaubt mir, die wahre positive Rate (Empfindlichkeit) und die wahre negative Rate (Spezifität) zu berechnen. Außerdem kann ich die gesamte ROC-Kurve durch Variation des Cutoffs konstruieren und dann die AUC für den ROC-Graphen erhalten.

Angenommen, ich habe tatsächlich Überlebensdaten. Daher habe ich ein Cox-Modell für proportionale Gefährdungen im Modellbildungsdatensatz verwendet und möchte nun überprüfen, wie gut das Modell im Validierungsdatensatz funktioniert. Da das Basisrisiko in Cox-Modellen keine parametrische Funktion ist, kann ich nicht erkennen, wie ich die vorhergesagte Überlebenswahrscheinlichkeit für jede Person im Validierungsdatensatz basierend auf den im Modellaufbau-Datensatz erhaltenen Modellkoeffizienten ermitteln kann. Wie kann ich überprüfen, wie gut das Modell im Validierungsdatensatz funktioniert? Gibt es dafür etablierte Methoden? Und wenn ja, sind sie in irgendeiner Software implementiert? Vielen Dank im Voraus für alle Vorschläge!

Antworten:


9

Eine ROC-Kurve ist in dieser Einstellung nicht nützlich, obwohl der verallgemeinerte ROC-Bereich (c-Index, der überhaupt keine Dichotomisierung erfordert) ist. Das R- rmsPaket berechnet den C-Index und die durch Cross-Validierung oder Bootstrap-Überanpassung korrigierten Versionen davon. Sie können dies tun, ohne Daten zurückzuhalten, wenn Sie das Modell vollständig vorab spezifizieren oder bei jedem Resample einen Rückwärts-Stepdown-Algorithmus wiederholen. Wenn Sie wirklich eine externe Validierung durchführen möchten, dh wenn Ihre Validierungsstichprobe enorm ist, können Sie die folgenden rmsFunktionen verwenden: rcorr.cens, val.surv.


Danke für die Antwort. Können Sie erklären, warum eine ROC-Kurve in dieser Einstellung nicht sinnvoll ist? Ich habe einige prominente Anwendungen gesehen, bei denen ein solcher Ansatz verwendet wurde (z. B. Hippisley-Cox et al. (2007). Ableitung und Validierung von QRISK, einem neuen Risikoscore für kardiovaskuläre Erkrankungen im Vereinigten Königreich: prospektive offene Kohortenstudie. British Medical Journal , 335 (7611): 136), so wundere ich mich jetzt über ihre Methoden.
Wolfgang

1
Hier ist eine Analogie. Angenommen, man möchte einschätzen, in welchem ​​Verhältnis das Altern zur Lauffähigkeit steht. Der ROC-Ansatz würde die Frage stellen, ob jemand über ein bestimmtes (willkürliches) Alter hinausläuft. In einer Kohortenstudie ist es nur verwirrend, die Rolle der unabhängigen und abhängigen Variablen umzukehren, und die ROC-Kurven verleiten dazu, einen Prädiktor abzuschneiden , der bekanntermaßen eine schlechte statistische Praxis darstellt - siehe biostat.mc.vanderbilt.edu/ CatContinuous . Cutpoints müssen neben der Erzeugung von Havock auch Funktionen aller anderen Prädiktoren sein.
Frank Harrell

Nochmals vielen Dank für die Antwort. Ich bin allerdings nicht ganz überzeugt. Ich stimme voll und ganz zu, dass die willkürliche Kategorisierung einer kontinuierlichen Variablen eine schlechte Praxis ist, aber der ROC-Ansatz kategorisiert alle möglichen Grenzwerte und fasst diese Informationen über die AUC zusammen. Darin liegt also keine Willkür. Es scheint auch eine übliche und akzeptierte Praxis für logistische Regressionsmodelle zu sein. Sind Sie also gegen die Verwendung von ROC-Kurven im Allgemeinen oder nur im Kontext von Überlebensmodellen?
Wolfgang

2
X=xX>c

Meine Erfahrung zeigt, dass viele Forscher / Praktiker dichotome Entscheidungsregeln wünschen (abgesehen davon, ob dies nützlich ist oder nicht). Auf jeden Fall werde ich einige dieser R-Funktionen nachverfolgen und sehen, wohin mich das führt. Danke für das Gespräch.
Wolfgang

0

Ich weiß, dass diese Frage ziemlich alt ist, aber was ich getan habe, als ich auf dasselbe Problem gestoßen bin, war, die Vorhersagefunktion zu verwenden, um eine "Punktzahl" für jedes Thema im Validierungssatz zu erhalten. Anschließend wurden die Probanden danach aufgeteilt, ob der Score höher oder niedriger als der Median war, und die Kaplan-Meier-Kurve aufgetragen. Dies sollte eine Trennung der Subjekte anzeigen, wenn Ihr Modell vorhersagbar ist. Ich habe auch die Korrelation von Score (tatsächlich von seinem ln [für die Normalverteilung]) mit dem Überleben unter Verwendung der Coxph-Funktion aus dem Überlebenspaket in R getestet.

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.