Структура данных и вызов функции для данных повторяющихся событий с переменными во времени


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. Они переходили с 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 с 3 раза. В тот момент у них не было падения, поэтому их наблюдение с 0 до 2 в этот момент подвергается цензуре, потому что мы не знаем, сколько еще произойдет их падение, если они продолжат принимать препарат 1 в одиночку. Во время 3 они повторно вводятся в когорту, закодированную как пациент, принимающий оба лекарства в течение 7 единиц времени, после чего они испытывают свое первое падение. Они испытывают второе падение на той же комбинации наркотиков только через 4 единицы времени после.

Количество записей не является полезной сводкой когортных данных. Не удивительно, что количество рядов намного больше, чем количество пациентов. Вместо этого суммируйте время от начала до остановки и запишите его как количество человеко-времени, подверженного риску. Когорт-знаменатель полезен для понимания заболеваемости. Полезно также суммировать необработанное количество пациентов, но имейте в виду, что данные представлены в «длинном» формате, так что они меньше, чем количество строк в вашем наборе данных.

Для ошибки, я думаю, вам может понадобиться добавить 1 единицу к дате «остановки». Если пациент 123 принимает препарат 1 в течение дней 0, 1 и 2, а затем начинает прием препарата 2 в день 3, то он подвергается риску падения в течение 3 дней для препарата 1. Однако 2-0 = 2, и это не правильно знаменатель.

То, что делает «кластерный» аргумент (как правило), навязывает слабость, которая является типом случайного перехвата, который объясняет то, что может быть пропорциональной разницей риска, связанной с несколькими неизмеренными факторами риска. Я не часто провожу анализы со слабостями. Вы можете опустить команду «cluster» и интерпретировать результаты как коэффициенты заболеваемости. Вы можете поочередно подобрать модель Кокса на время до первого падения у всех пациентов и интерпретировать коэффициенты риска как коэффициенты риска. Я думаю, что слабый результат должен упасть где-то между этими двумя, и я никогда не совсем ясно представлял, какова должна быть интерпретация.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.