Структура даних та функції виклику для даних про періодичні події із залежними від часу змінними


9

Я намагаюся оцінити вплив 2 препаратів ( drug1, drug2) на ймовірність падіння пацієнта ( event). Пацієнти можуть впасти не один раз, і їх можна в будь-який момент надіти або зняти.

Моє запитання полягає в тому, як слід структурувати дані щодо періоду часу (днів), зокрема, чи потрібно перетинатись між днями. Є дві причини, чому я вважаю, що моя структура неправильна, перша, здавалося б, неправильна N. Я також отримую деякі помилки , коли період часу один день (тобто time1=4, time2=4) , і я НЕ впевнений , як вони повинні бути закодовані. Чи повинен час початку наступних записів бути часом зупинки попереднього запису? Я спробував це в обох напрямках (з перекриттям і без нього), і хоча перекриття позбавляється від попередження, Nце все ще неправильно.

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

Зараз у мене налаштовані дані, де початок наступного запису наступного дня. Унікальні пацієнти ідентифікують їх 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

Пацієнт 123 був на наркотику1 на початку 2-го дня, після чого їм додали наркотик2. Вони переходили з 3 по 10 день на обидва препарати, перш ніж потрапляли в перший раз, потім вдруге впали на 14 день, поки все ще були на обидва препарати. Хворий 345 пішов 11 днів на наркотики2, не впавши (потім піддався цензурі) тощо.

Фактична оцінка виглядає приблизно так:

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

Моє основне занепокоєння полягає в тому, що nдля мого аналізу повідомляється 2017(кількість рядків у даних), коли насправді у мене є лише 314унікальні пацієнти. Я не впевнений, якщо це нормально або є причиною помилки, яку я зробив по дорозі.

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

Те саме стосується використання coxph()з пакету виживання.

 n= 2017, number of events= 133

Однак кількість подій є правильною.

Здається, ця публікація налаштована на описане нами «перекриття», але я не впевнений у цьому N, і вони, схоже, не згрупуються ID.


+cluster(ChartNo)Термін повинен піклуватися про повторні спостереженнях заклопотаності. Альтернативним підходом було б додати + (1|subject)до аналізу coxme :: coxme.
DWin

Відповіді:


1

Форматування ваших даних правильне.

У вас є декілька записів на пацієнта через періодичні події, а додаткова складність препарату є часовою коваріацією. Вихід, який ви надрукували за допомогою head, корисний для розуміння цих даних.

Типовим підходом до аналізу повторюваних подій, а також коваріатів, що змінюються часом, є форматування даних у форматі "довгий", де кожен рядок представляє інтервал спостережень, пов'язаних з ризиком. Наприклад, ми бачимо, що пацієнт 123 перебуває на препараті1 час від 0 до 2, а потім змінюється на прийом як наркотиків 1, так і наркотиків 2. У той момент вони не зазнали падіння, тому їх спостереження від 0-2 Цього разу піддають цензурі, тому що ми не знаємо, скільки часу настане їх падіння, якби вони продовжували приймати наркотик 1 в поодинці. На час 3 їх повторно вводять до когорти, кодованої як пацієнт, який приймає обидва препарати протягом 7 одиниць часу, після чого вони відчувають своє перше падіння. Друге потрапляння на ту ж комбінацію ліків вони відчувають лише через 4 одиниці часу після.

Кількість записів не є корисним підсумком даних когорт. Не дивно, що кількість рядів набагато більша, ніж кількість пацієнтів. Натомість підсумовуйте час від початку до зупинки та запишіть його як кількість ризику, що залежить від людини. Знаменник когорти корисний для розуміння захворюваності. Корисно також узагальнити необмежену кількість пацієнтів, але майте на увазі, що дані мають "довгий" формат, щоб менше, ніж кількість рядків у вашому наборі даних.

Для помилки, я думаю, вам може знадобитися додати 1 одиницю до дати "зупинки". Якщо пацієнт 123 приймає наркотик 1 протягом 0, 1 та 2 днів, а потім починає наркотики 2 на 3 день, то вони зазнали 3-х днів ризику потрапляння наркотиків 1. Однак 2-0 = 2, і це не правильно знаменник.

Те, що робить аргумент «кластер» (як правило) - це накладення крихкості, що є типом випадкового перехоплення, яке пояснює те, що може бути пропорційним різницею ризику, яке можна віднести до декількох невимірних факторів ризику. Я не часто проводжу аналізи з уламками. Ви можете опустити команду "кластер" та інтерпретувати результати як коефіцієнти частот. Можна по черзі підходити до моделі кокса на час до першого падіння у всіх пацієнтів та інтерпретувати коефіцієнти небезпеки як коефіцієнти ризику. Я думаю, що результат кволості повинен опинитися десь між цими двома, і мені ніколи не було зрозуміло, якою має бути інтерпретація.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.