Datenstruktur und Funktionsaufruf für wiederkehrende Ereignisdaten mit zeitabhängigen Variablen


9

Ich versuche, die Wirkung von 2 Medikamenten ( drug1, drug2) auf die Wahrscheinlichkeit eines Sturzes eines Patienten abzuschätzen ( event). Die Patienten können mehr als einmal fallen und können jederzeit an- oder abgenommen werden.

Meine Frage ist, wie die Daten in Bezug auf den Zeitraum (Tage) strukturiert sein sollten, insbesondere, ob es Überschneidungen zwischen den Tagen geben muss. Es gibt zwei Gründe, warum ich denke, dass meine Struktur falsch ist, der erste ist scheinbar falsch N. Ich erhalte auch einige Fehler , bei denen die Zeitdauer ein Tag ist (dh time1=4, time2=4) und bin nicht sicher , wie diese codiert werden soll. Sollte die Startzeit nachfolgender Einträge die Stoppzeit des vorherigen Eintrags sein? Ich habe es in beide Richtungen versucht (mit und ohne Überlappung), und während Überlappung die Warnung beseitigt, ist die Nimmer noch falsch.

Warning message:
In Surv(time = c(0, 2, 7, 15, 20, 0, 18, 27, 32, 35, 39, 46, 53,  :
  Stop time must be > start time, NA created

Im Moment habe ich die Daten dort eingerichtet, wo der Beginn des nächsten Eintrags am nächsten Tag ist. Einzigartige Patienten werden durch ihre identifiziert chart numbers.

Time1    Time2    Drug1    Drug2   Event    ChartNo
    0        2        1        0       0        123
    3       10        1        1       1        123
   11       14        1        1       1        123
    0       11        0        1       0        345
    0       19        1        0       1        678
    0        4        0        1       0        900
    5       18        1        1       0        900

Patient 123 war zu Beginn von Tag 2 mit Medikament 1 behandelt worden. Danach wurde Medikament 2 hinzugefügt. Sie gingen von Tag 3 bis Tag 10 mit beiden Medikamenten, bevor sie das erste Mal fielen, und fielen dann am zweiten Tag ein zweites Mal, während sie noch beide Medikamente einnahmen. Patient 345 nahm 11 Tage lang Droge2 ein, ohne zu fallen (wurde dann zensiert) usw.

Die tatsächliche Schätzung sieht folgendermaßen aus:

S <- Srv(time=time1, time2=time2, event=event)
cox.rms <- cph(S ~ Drug1 + Drug2 + cluster(ChartNo), surv=T)

Mein Hauptanliegen ist, dass nfür meine Analyse angegeben wird 2017(die Anzahl der Zeilen in den Daten), wenn ich in Wirklichkeit nur 314eindeutige Patienten habe. Ich bin mir nicht sicher, ob dies normal ist oder auf einen Fehler zurückzuführen ist, den ich unterwegs gemacht habe.

> cox.rms$n
Status
No Event    Event 
    1884      133 

Gleiches gilt für die Verwendung coxph()aus dem Überlebenspaket.

 n= 2017, number of events= 133

Die Anzahl der Ereignisse ist jedoch korrekt.

Dieser Beitrag scheint mit der von mir beschriebenen "Überlappung" eingerichtet zu sein, aber ich bin Nmir nicht sicher , und sie scheinen sich nicht zu gruppieren ID.


Der +cluster(ChartNo)Begriff sollte sich um die wiederholten Beobachtungen kümmern. Ein alternativer Ansatz wäre + (1|subject), eine coxme :: coxme-Analyse zu ergänzen .
DWin

Antworten:


1

Ihre Datenformatierung ist korrekt.

Aufgrund wiederkehrender Ereignisse und der zusätzlichen Komplexität des Arzneimittels, die eine zeitlich variierende Kovariate darstellt, haben Sie mehrere Aufzeichnungen pro Patient. Die Ausgabe, mit der Sie gedruckt haben, headist hilfreich, um diese Daten zu verstehen.

Der typische Ansatz zur Analyse wiederkehrender Ereignisse sowie zeitlich variierender Kovariaten besteht darin, die Daten so zu formatieren, dass sie in einem "langen" Format vorliegen, wobei jede Zeile ein Intervall von Risikokovariatenbeobachtungen darstellt. Zum Beispiel sehen wir, dass Patient 123 von Zeitpunkt 0 bis Zeitpunkt 2 allein mit Medikament 1 behandelt wird und sich dann ändert, um ab Zeitpunkt 3 sowohl Medikament 1 als auch Medikament 2 einzunehmen. Zu diesem Zeitpunkt hatten sie keinen Sturz erlebt, also ihre Beobachtung von 0-2 wird zu diesem Zeitpunkt zensiert, weil wir nicht wissen, wie lange ihr Sturz noch dauern würde, wenn sie weiterhin Medikament 1 alleine einnehmen würden. Zum Zeitpunkt 3 werden sie erneut in die Kohorte aufgenommen, die als Patient kodiert ist, der beide Medikamente für 7 Zeiteinheiten einnimmt, wonach sie ihren ersten Sturz erleben. Sie erleben einen zweiten Sturz auf dieselbe Wirkstoffkombination nur 4 Zeiteinheiten später.

Die Anzahl der Datensätze ist keine nützliche Zusammenfassung der Kohortendaten. Es ist nicht überraschend, dass die Anzahl der Reihen weitaus größer ist als die Anzahl der Patienten. Summieren Sie stattdessen die Zeiten von Anfang bis Ende und notieren Sie sie als gefährdete Zeit für Personen. Der Kohorten-Nenner ist nützlich, um die Inzidenz zu verstehen. Es ist auch nützlich, die rohe Anzahl der Patienten zusammenzufassen. Beachten Sie jedoch, dass die Daten im "langen" Format vorliegen, sodass sie weniger als die Anzahl der Zeilen in Ihrem Datensatz sind.

Für den Fehler müssen Sie möglicherweise 1 Einheit zum "Stopp" -Datum hinzufügen. Wenn Patient 123 Medikament 1 für die Tage 0, 1 und 2 einnimmt und dann Medikament 2 am Tag 3 beginnt, besteht für ihn 3 Tage ein Risiko für Stürze auf Medikament 1. 2-0 = 2 und das ist nicht richtig Nenner.

Das "Cluster" -Argument führt (normalerweise) zu einer Schwachstelle, bei der es sich um eine Art zufälligen Abschnitt handelt, der möglicherweise proportionale Risikodifferenzen berücksichtigt, die auf mehrere nicht gemessene Risikofaktoren zurückzuführen sind. Ich führe nicht oft Analysen mit Schwächen durch. Sie können den Befehl "Cluster" weglassen und die Ergebnisse als Inzidenzquoten interpretieren. Sie können das Cox-Modell für die Zeit bis zum ersten Sturz bei allen Patienten abwechselnd anpassen und die Gefährdungsquoten als Risikoverhältnisse interpretieren. Ich denke, das Ergebnis der Gebrechlichkeit sollte irgendwo zwischen diesen beiden liegen, und ich war mir nie ganz klar, wie die Interpretation aussehen sollte.

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.