Які варіанти пропорційної моделі регресії небезпеки, коли залишки Шенфельда не є хорошими?


15

Я роблю пропорційну регресію небезпеки Кокса в R coxph, яка включає багато змінних. Залишки Мартингейла виглядають чудово, а залишки Шенфельда чудово підходять для всіх змінних. Існує три змінні, залишки яких по Шенфельду не є плоскими, а природа змінних така, що має сенс, що вони могли змінюватися з часом.

Це змінні, які мені не дуже цікаві, тому робити їх прошарками було б добре. Однак усі вони є суцільними змінними, а не категоричними змінними. Тому я вважаю, що шари не є життєздатним маршрутом *. Я намагався будувати взаємодії між змінними та часом, як описано тут , але ми отримуємо помилку:

  In fitter(X, Y, strats, offset, init, control, weights = weights,  :
  Ran out of iterations and did not converge

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

Які мої варіанти? Оскільки мені не байдуже до цих конкретних змінних змін, я хотів би просто ігнорувати їх вихід, але підозрюю, що це неправдива інтерпретація!

* Одне є безперервним, одне ціле число з діапазоном понад 100, а одне ціле число з діапазоном 6. Можливо, бінінг?


2
Що з використанням розширеної моделі Кокса з взаємодією в часі для залежних від часу змінних?
Кірк

А як щодо розгляду варіанту коваріатів у часі (наприклад, -tvc- у Stata)?
Карло Лаццаро

Відповіді:


1

Найелегантнішим способом було б використовувати параметричну модель виживання (Gompertz, Weibull, Exponential, ...), якщо ви маєте уявлення про те, як може виглядати базова небезпека.

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

Про R дивіться тут: http://cran.r-project.org/web/packages/survival/vignettes/timedep.pdf


1

Пара ідей -

1) Спробуйте підхід моделювання Ройстона-Пармара, наприклад http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0047804 та посилання на них. Ми мали корисні результати з цим.

2) Центрування та стандартизація безперервних змінних може бути корисною чисельно.

3) У багатьох моделях з факторами з великою кількістю рівнів є кілька рівнів, де даних в основному немає. Об’єднання рівнів для їх усунення, але на основі хороших предметних критеріїв, може бути дуже корисним.

Удачі!


1

Якщо використання взаємодії з базовим часом не працює, ви можете спробувати покрокові функції (для отримання додаткової інформації див . Vignett e Therneau 2016 ).

Крок функції розшаровується на конкретні коефіцієнти через певні інтервали. Побачивши накреслені залишки Шенфельда для проблемних коваріатів (тобто plot(cox.zph(model.coxph))), вам потрібно візуально перевірити, де лінії змінюють кут. Спробуйте знайти одну або дві точки, де бета-версія здається помітно різною. Припустимо , що це сталося під час 10 і 20. Таким чином , ми будемо створювати дані , використовуючи survSplit()з survivalпакета , який буде створений фрейм даних для моделі конкретних даних групування в зазначених випадках:

step.data <- survSplit(Surv(t1, t2, event) ~ 
                      x1 + x2,
                      data = data, cut = c(10, 20), episode = "tgroup")

А потім запустіть cox.phмодель з strataфункцією як взаємодії з проблемними змінними (як при взаємодії з часом, не додайте головного ефекту для часу чи прошарків):

> model.coxph2 <- coxph(Surv(t1, t2, event) ~ 
                          x1 + x2:strata(tgroup), data = step.data)

І це повинно допомогти.

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