Как сделать перекрестную проверку с помощью модели пропорциональных рисков Кокса?


15

Предположим, что я построил модель прогнозирования возникновения конкретной болезни в одном наборе данных (набор данных построения модели) и теперь хочу проверить, насколько хорошо модель работает в новом наборе данных (набор данных проверки). Для модели, построенной с логистической регрессией, я рассчитал бы прогнозируемую вероятность для каждого человека в наборе данных проверки на основе коэффициентов модели, полученных из набора данных для построения модели, и затем, после дихотомии этих вероятностей при некотором предельном значении, я мог бы построить таблицу 2x2 это позволяет мне рассчитывать истинную положительную оценку (чувствительность) и истинную отрицательную оценку (специфичность). Кроме того, я могу построить всю кривую ROC, изменяя срез, а затем получить AUC для графика ROC.

Теперь предположим, что у меня есть данные о выживании. Итак, я использовал модель пропорциональных рисков Кокса в наборе данных построения модели и теперь хочу проверить, насколько хорошо модель работает в наборе данных проверки. Поскольку базовый риск не является параметрической функцией в моделях Кокса, я не вижу, как я могу получить прогнозируемую вероятность выживания для каждого человека в наборе данных проверки на основе коэффициентов модели, полученных в наборе данных построения модели. Итак, как я могу проверить, насколько хорошо модель работает в наборе данных проверки? Существуют ли установленные методы для этого? И если да, реализованы ли они в каком-либо программном обеспечении? Спасибо заранее за любые предложения!

Ответы:


9

Кривая ROC в этой настройке бесполезна, хотя обобщенная область ROC (c-индекс, которая вообще не требует дихотомизации) есть. Пакет R rmsбудет вычислять c-index и его версии с перекрестной проверкой или с начальной загрузкой. Вы можете сделать это, не задерживая никакие данные, если полностью предварительно задаете модель или повторяете алгоритм обратного понижения при каждой повторной выборке. Если вы действительно хотите выполнить внешнюю проверку, т. Е. Если ваш образец проверки огромен, вы можете использовать следующие rmsфункции: rcorr.cens, val.surv.


Спасибо за ответ. Не могли бы вы объяснить, почему кривая ROC не используется в этой настройке? Я видел несколько известных приложений, где использовался такой подход (например, Hippisley-Cox et al. (2007). Вывод и проверка QRISK, нового показателя риска сердечно-сосудистых заболеваний для Соединенного Королевства: проспективное открытое когортное исследование. British Medical Journal , 335 (7611): 136), так что теперь я задаюсь вопросом об их методах.
Вольфганг

1
Вот аналогия. Предположим, кто-то интересуется оценкой того, как старение связано с беговыми способностями. Подход ROC будет задавать вопрос, учитывая чьи-либо способности к бегу, какова вероятность того, что они старше определенного (произвольного) возраста? В когортном исследовании это только добавляет путаницу, чтобы поменять роль независимых и зависимых переменных, и кривые ROC также побуждают человека обрезать предиктор, что, как известно, является плохой статистической практикой - см. Biostat.mc.vanderbilt.edu/ CatContinuous . Помимо создания havock, точки среза должны фактически быть функциями всех других предикторов.
Фрэнк Харрелл

Еще раз спасибо за ответ. Я не совсем убежден, хотя. Я полностью согласен с тем, что произвольная категоризация непрерывной переменной является плохой практикой, но подход ROC классифицирует все возможные отсечки и обобщает эту информацию через AUC. Так что в этом нет никакого произвола. Это также кажется стандартной и общепринятой практикой для моделей логистической регрессии. Так вы против использования кривых ROC в целом или только в контексте моделей выживания?
Вольфганг

2
Иксзнак равноИксИкс>с

Мой опыт подсказывает мне, что многие исследователи / практики на самом деле хотят дихотомических правил принятия решений (оставляя в стороне, полезно это или нет). В любом случае, я расскажу о некоторых из этих функций R и посмотрю, к чему это приведет. Спасибо за обсуждение.
Вольфганг

0

Я знаю, что этот вопрос довольно старый, но я столкнулся с той же проблемой, когда использовал функцию прогнозирования, чтобы получить «оценку» для каждого субъекта в наборе валидации. Затем последовало разделение субъектов в зависимости от того, был ли балл выше или ниже среднего, и построение кривой Каплана-Мейера. Это должно показать разделение предметов, если ваша модель является прогностической. Я также проверил корреляцию оценки (фактически ее ln [для нормального распределения]) с выживанием, используя функцию Кокша из пакета выживания в R.

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