Это снимок фрейма данных R df1
, который у меня есть.
NEW_UPC IRI_KEY WEEK UNITS DOLLARS F D PR
11820005991 1073521 1230 1 14.29 NONE 0 0
11820005991 1073521 1232 1 14.29 NONE 0 0
11820005991 1073521 1235 1 14.29 NONE 0 0
11820005991 1073521 1239 1 14.29 NONE 0 0
11820005991 1073521 1241 3 42.97 NONE 0 0
11820005991 1073521 1243 1 14.29 NONE 0 0
11820005991 1073521 1244 5 71.45 NONE 0 0
----------- ------- ---- - ----- ---- - -
11820005991 1073525 1218 2 27.98 NONE 0 0
11820005991 1073525 1224 1 13.99 NONE 0 0
11820005991 1073525 1229 1 12.99 NONE 0 1
11820005991 1073525 1236 1 12.99 NONE 0 0
----------- ------- ---- - ----- ---- - -
Я пытаюсь приспособить модель пропорциональных рисков Кокса к данным формата «субъект-местоположение-период».Я называю этот формат субъект-местоположение-период, потому что NEW_UPC
относится к идентификатору продукта, IRI_KEY
относится к местоположению магазина, а WEEK
относится к неделе.Переменные UNITS
, DOLLARS
, F
, D
и PR
изменяются во времени, и поэтому я хотел бы использовать модель Кокса с изменяющимися во времени ковариатами.Ссылки - это и это - которые я посмотрел, похоже, не имеют сценария данных, аналогичного моему.В большинстве ресурсов говорится о преобразовании одной линии наблюдения за субъектом в несколько строк наблюдения за предметным периодом с использованием survsplit
или tmerge
.Мои данные уже в формате субъект-местоположение-период, поэтому мне не нужно выполнять эти операции.Но мои данные не содержат переменных start
, stop
и event
, которые используются в формуле coxph
.который идет как coxph(Surv(start,stop,event)) ~ DOLLARS + F + D + PR
.Я думаю, что мне нужно вставить три новых столбца для создания переменных start
, stop
и event
.Интересующие меня данные - это смерть продукта.
В качестве первого шага для каждого NEW_UPC
я смог определить количество периодов существования, используя:
df1 %>% group_by(NEW_UPC,IRI_KEY) %>% summarise(Periods = n_distinct(WEEK))
Я использую вышеупомянутый подход, потому что, пожалуйста, обратите внимание, что тамнекоторые пропущенные периоды без данных.Например, для продукта NEW_UPC со значением 11820005991 у меня нет переменной информации за 1231,1233,1234,1236,1237,1238 и т. Д.Поэтому я не могу использовать max(WEEK) - min(WEEK)
, чтобы найти число периодов для каждого продукта.
С этого момента я просто пытаюсь продолжить.Есть идеи?
Добавлено: Ожидаемый результат
NEW_UPC IRI_KEY UNITS start stop event DOLLARS F D PR
11820005991 1073521 1 1230 1232 0 14.29 NONE 0 0
11820005991 1073521 1 1232 1235 0 14.29 NONE 0 0
11820005991 1073521 1 1235 1239 0 14.29 NONE 0 0
----------- ------- - ---- ---- - ----- ---- - -
11820005991 1073521 2 1287 1291 1 27.98 NONE 0 0
11820005991 1073525 2 1218 1224 0 27.98 NONE 0 0
11820005991 1073525 1 1224 1229 0 13.99 NONE 0 0
11820005991 1073525 1 1229 1236 0 12.99 NONE 0 1
----------- ------- - ---- ---- - ----- ---- - -
11820005991 1073525 1 1297 1303 1 13.99 NONE 0 0
----------- ------- - ---- ---- - ----- ---- - -
... и так далее
Кроме того, для выявления цензуры, если продукт доживает до 1426 недели, он подвергается цензуре.