Struktura danych i wywołanie funkcji dla danych o zdarzeniach cyklicznych ze zmiennymi zależnymi od czasu

9

Próbuję oszacować wpływ 2 leków ( drug1, drug2) na prawdopodobieństwo upadku pacjenta ( event). Pacjenci mogą upaść więcej niż jeden raz i mogą być przyjmowani lub zdejmowani z leków w dowolnym momencie.

Moje pytanie dotyczy tego, w jaki sposób dane powinny być uporządkowane w odniesieniu do okresu (dni), a konkretnie, czy należy nakładać się między dniami. Są dwa powody, dla których uważam, że moja struktura jest niewłaściwa, z których pierwszy jest pozornie niepoprawny N. Ja również się pewne błędy w którym okres czasu wynosi jeden dzień (to znaczy time1=4, time2=4) i jestem pewien, w jaki sposób powinny być kodowane. Czy czas rozpoczęcia kolejnych wpisów powinien być czasem zakończenia poprzedniego wpisu? Wypróbowałem to na dwa sposoby (z nakładaniem się i bez nakładania się), a mimo że nakładanie się usuwa ostrzeżenie, Nnadal jest niepoprawne.

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

W tej chwili mam skonfigurowane dane, w których początek następnego wpisu jest następnego dnia. Unikalni pacjenci są identyfikowani przez ich 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

Pacjent 123 przyjmował lek1 na początku drugiego dnia, po którym to czasie dodano lek2. Przeszli od dnia 3 do dnia 10 na obu lekach przed upadkiem za pierwszym razem, a następnie spadli drugi raz w dniu 14, gdy wciąż byli na obu lekach. Pacjent 345 poszedł 11 dni na lek2 bez upadku (wtedy został ocenzurowany) itp.

Rzeczywiste oszacowanie wygląda następująco:

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

Moją główną obawą jest to, że ndla mojej analizy podano 2017(liczbę wierszy w danych), kiedy w rzeczywistości mam tylko 314unikalnych pacjentów. Nie jestem pewien, czy jest to normalne, czy też jest wynikiem jakiegoś błędu, który popełniłem po drodze.

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

To samo dotyczy korzystania coxph()z pakietu przetrwania.

 n= 2017, number of events= 133

Liczba zdarzeń jest jednak poprawna.

Wydaje się, że ten post ma skonfigurowane „nakładanie się”, które opisałem, ale nie jestem pewien co do tego Ni nie wydają się być grupowane ID.

Społeczność
źródło
+cluster(ChartNo)Termin powinien dbać o wielokrotne obserwacje niepokoju. Alternatywnym podejściem byłoby dodanie + (1|subject)do analizy coxme :: coxme.
DWin

Odpowiedzi:

1

Twoje formatowanie danych jest prawidłowe.

Masz wiele rekordów na pacjenta z powodu powtarzających się zdarzeń, a dodatkowa złożoność leku jest zmienną zależną od czasu. Dane wyjściowe, które wydrukowałeś, headsą pomocne w zrozumieniu tych danych.

Typowym podejściem do analizy zdarzeń powtarzających się, a także zmiennych towarzyszących zmieniających się w czasie, jest formatowanie danych w formacie „długim”, w którym każdy wiersz reprezentuje przedział obserwacji zmiennych towarzyszących ryzyku. Na przykład widzimy, że pacjent 123 przyjmuje sam lek 1 od 0 do 2 czasu, a następnie zmienia się, aby przyjmować zarówno lek 1, jak i lek 2 od 3. W tym momencie nie doświadczył upadku, więc ich obserwacja od 0-2 jest ocenzurowany w tym momencie, ponieważ nie wiemy, jak długo potrwa ich upadek, jeśli nadal będą przyjmować lek 1 sam. W czasie 3 są ponownie wprowadzani do kohorty zakodowanej jako pacjent przyjmujący oba leki przez 7 jednostek czasowych, po których następuje ich pierwszy upadek. Doświadczają drugiego spadku tej samej kombinacji leków dopiero po 4 jednostkach czasu.

Liczba rekordów nie jest przydatnym podsumowaniem danych z kohorty. Nic dziwnego, że liczba rzędów jest znacznie większa niż liczba pacjentów. Zamiast tego zsumuj czasy od początku do końca i zanotuj je jako ilość osób narażonych na ryzyko. Mianownik kohortowy jest przydatny do zrozumienia występowania. Przydatne jest także podsumowanie liczby pacjentów, ale należy pamiętać, że dane są w „długim” formacie, więc jest mniejsza niż liczba wierszy w zbiorze danych.

W przypadku błędu uważam, że może być konieczne dodanie 1 jednostki do daty „zatrzymania”. Jeśli pacjent 123 przyjmuje lek 1 przez dni 0, 1 i 2, a następnie rozpoczyna lek 2 w dniu 3, wówczas doświadczył 3-dniowego ryzyka upadku na lek 1. Jednak 2-0 = 2 i to nie jest poprawne mianownik.

To, co robi argument „klastrowy” (zazwyczaj), narzuca kruchość, która jest rodzajem przypadkowego przechwytywania, które uwzględnia proporcjonalne różnice ryzyka związane z kilkoma nie mierzonymi czynnikami ryzyka. Nie często przeprowadzam analizy z ułomnościami. Możesz pominąć polecenie „klaster” i interpretować wyniki jako współczynniki zapadalności. Możesz na przemian dopasować model Coxa do czasu pierwszego upadku u wszystkich pacjentów i zinterpretować współczynniki ryzyka jako współczynniki ryzyka. Myślę, że kruchy wynik powinien wypaść gdzieś pomiędzy tymi dwoma, i nigdy nie byłem całkiem pewien, jaka powinna być interpretacja.

AdamO
źródło