Verwendung zeitabhängiger Kovariaten mit Cox-Regression in R.

7

Ich weiß nicht, wie man zeitabhängige Kovariaten in R für die Verwendung der Cox-Regression erzeugt.

Ich weiß, dass Sie Ihren Datensatz in Intervallen zwischen Ereigniszeiten neu organisieren müssen. Ich glaube, ich kann das mit den herumschwebenden Tutorials machen. Danach stecke ich allerdings fest. Was jetzt? Für jede Kovariate muss ich jetzt ihren Wert in jedem bestimmten Zeitintervall berechnen? Wie würde ich das machen? Muss ich zur Datenbank zurückkehren und das Datum abrufen, an dem beispielsweise eine Pulsfrequenz aufgezeichnet wurde, und dann den Pulswert basierend auf dem Datum entsprechend aktualisieren?

Ich möchte nur bestätigen, dass Sie bei zeitabhängigen Kovariaten häufig zurückgehen und mehr Datums- / Zeitinformationen aus der Datenbank extrahieren und alle Kovariateninformationen aktualisieren müssen. Grundsätzlich sind die Tutorials, mit denen Sie Ihren Datensatz in das "lange" Format umwandeln, nicht das einzige, was ich tun muss, oder?

user798719
quelle

Antworten:

8

Es ist schwierig, Ihre Daten nicht zu sehen, daher werde ich versuchen, sie generisch zu gestalten. Zunächst die beiden wichtigsten Möglichkeiten, wie ein Datenrahmen für die Verwendung im survivalPaket aussehen sollte :

Die nackten Knochen

  • ID - eine eindeutige Variable zur Identifizierung jeder Analyseeinheit (z. B. Patient, Land, Organisation)
  • Ereignis - eine binäre Variable, die das Auftreten des getesteten Ereignisses anzeigt (z. B. Tod, Revolution, Insolvenz)
  • Zeit - Zeit bis zum Ereignis oder bis zum Ende der Information ( Rechtszensur ). Das Cox-Modell wird am besten mit kontinuierlicher Zeit verwendet, aber wenn die Studie über Jahre (insbesondere in Bezug auf Länder) durchgeführt wird, können monatliche Zaubersprüche ausreichen.
  • ( Oft ) Einige Kovariaten

Verwenden wir ein erfundenes Modell, um die Gefahr für Länder zu ermitteln, die über einen Zeitraum von eventzehn Jahren (in monatlichen Zaubersprüchen) in einen Bürgerkrieg geraten. Verwenden einer einzelnen Kovariate ( previousCivilWar), die nicht zeitabhängig ist:

# the first country was censored before an event and the second 
# experienced the event after 8 years
id time event prevCivilWar 
 1  120     0   0 
 2   96     1   1 

Hinzufügen zeitabhängiger Kovariaten: Methode 1

  • Kovariate - In diesem Fall müssen Sie den ursprünglichen Wert kennen und wissen, ob und zu welchem ​​Wert er sich geändert hat - und wenn ja, wann (zu welchem ​​Zeitpunkt).
  • Ändern der Zeitvariablen zum Starten und Beenden - bei Bedarf, um den Zeitpunkt der Änderung für (eine der) Kovariaten anzugeben

Hier fügen wir die binäre Variable hinzu, um> 40% Armut anzuzeigen is40pov:

id time1 time2 event prevCivilWar is40pov
 1    0    80   0               0       0
 1   80   120   0               0       1
 2    0    24   0               1       0
 2   24    60   0               1       1
 2   60    96   1               1       1

Wenn wir zeitabhängige Kovariaten verwenden, müssen wir den genauen Zeitrahmen angeben, bis eine Änderung einer Kovariate auftritt. Beachten Sie, dass sich die Zeiten überschneiden müssen. Wenn ein bestimmtes Thema keine Änderungen an Kovariaten aufweist, reicht eine Zeile aus.

Methode 2 - am besten für sich ständig ändernde Kovariaten Dies schließt Zeilen pro eindeutiger ID ein, da es Zauber gibt ( Zeilen, wenn zensiert, oder weniger, wenn das Ereignis zuvor aufgetreten ist). Wenn Sie also eine Datenbank mit Informationen zu einem bestimmten untersuchten Zeitrahmen haben, entscheiden Sie sich für die Zauberlänge, die für Sie sinnvoll ist (was theoretisch sinnvoll ist): Wenn sich die Kovariaten stündlich ändern - machen Sie sie stündlich usw. Sobald Sie sich für die Zauberlänge (z. B. Monat) und die Gesamtzeit (z. B. zehn Jahre) entschieden haben, hat jede ID <= Zauber.kk120

Wenn Sie benötigen, erstellen Sie die Längs Datensatz mit leeren ( NA, 0oder was auch immer) Daten für die zeitabhängige Kovariaten und zwei Zusatznutzen Spalten für Datum / Uhrzeit eines jeden Zauber machen. Dann können Sie auf die Datenbank zugreifen und die spezifischen Werte für Ihre Kovariaten zu diesen Daten / Zeiten abrufen und ausfüllen. Es ist in Ordnung, wenn bestimmte Zeilen keine Änderungen an den Kovariaten aufweisen. Sie werden am Ende so etwas wie:

# The variable pov is the poverty percent of population and measured monthly
id time1 time2 event prevCivilWar pov
 1    0     1   0               0   0.34
 1    1     2   0               0   0.34
 ...
 1   79    80   0               0   0.43
 ...
 1  119   120   1               0   0.41
 2    0     1   0               1   0.25
 ...
 2   23    24   0               1   0.42
 ...
 2   95    96   1               1   0.58 

Weitere Informationen zu zeitabhängigen Kovariaten und Koeffizienten finden Sie in der Vignette 2016 von Therneau, Crowson und Atkinson .

Yuval Spiegler
quelle
Haben Sie einen Code oder eine Funktion, die dies in R tut?
Guilherme Parreira