New In
Лассо для моделей пропорциональных рисков Кокса
Если у вас есть данные о времени наступления события, также известные как данные о времени выживания или времени отказа, и множество предикторов, обратите внимание на lasso cox и elasticnet.
команды. (Когда мы говорим «много предикторов», мы имеем в виду сотни, тысячи или даже больше!) Новые в Stata 18, эти команды расширяют существующий набор команд lasso для прогнозирования и выбора моделей, включая высокоразмерную полупараметрическую модель пропорциональных рисков Кокса.
После lasso cox и elasticnet cox вы можете использовать stcurve для построения графиков выживших, неудач, опасности или кумулятивной функции опасности или использовать любой другой инструмент постоценки, доступный после lasso и elasticnet.
Давайте посмотрим, как это работает
Мы проиллюстрируем lasso cox на примере прогнозирования риска смерти пациентов с аденокарциномой легких I стадии. Аденокарцинома легкого — один из наиболее распространенных видов немелкоклеточного рака легкого.
Аденокарцинома I стадии означает, что размер опухоли относительно невелик и рак не распространился на другие отдаленные органы. Выживаемость пациентов с аденокарциномой I стадии различна, несмотря на то что они находятся на ранней стадии развития рака. Например, по данным Yu et al. (2016), в одной когорте более 50 % пациентов с аденокарциномой I стадии умерли в течение 5 лет после постановки первоначального диагноза, а около 15 % пациентов прожили более 10 лет.
Для прогностического анализа используются гистопатологические признаки изображения. Мы можем использовать lasso cox для извлечения лучших признаков гистопатологического изображения, которые отличают краткосрочных и долгосрочных выживших пациентов.
У нас есть вымышленный набор данных о выживаемости (lungcancer.dta), созданный по мотивам работы Yu et al. (2016). Переменная t фиксирует либо время смерти, либо цензуру в месяцах для пациентов с аденокарциномой легкого I стадии. Индикаторная переменная died равна 1 или 0, если пациент умер или подвергся цензуре, соответственно. Имеется 500 признаков гистопатологического изображения, от histfeature1 до hisfeature500, и только 250 пациентов. Цель анализа — отнести нового пациента к группе низкого или высокого риска, учитывая особенности гистопатологического изображения.
Сначала мы загружаем набор данных, а затем вводим команду stset, чтобы показать, что он уже был создан.
Затем мы разделили всю выборку на обучающие и тестовые данные. Обучающие данные будут использоваться для оценки, а тестовые — для измерения эффективности предсказания.
Мы используем функцию splitsample, чтобы разделить данные на две части. С помощью опции generate(group) мы создаем новую переменную group, которая равна 1, если она относится к обучающим данным, и 0 — к тестируемым. Опция split(0.6 0.4) указывает, что 60 % всех данных используются в качестве обучающих, а 40 % — в качестве тестовых. Чтобы сделать результаты воспроизводимыми, мы задаем опцию rseed().
. splitsample, generate(group) split(0.6 0.4) rseed(12345)
Для последующего использования мы сохраняем обучающие данные как lungcancer_training.dta, а тестирующие данные — как lungcancer_testing.dta.
. preserve . keep if group == 1 (100 observations deleted) . save lungcancer_training, replace file lungcancer_training.dta not found file lungcancer_training.dta saved . restore . preserve . keep if group == 2 (150 observations deleted) . save lungcancer_testing, replace file lungcancer_testing.dta not found file lungcancer_testing.dta saved . restore
Теперь мы подгоним модель lasso cox, используя только обучающие данные. По умолчанию мы используем кросс-валидацию. Для воспроизводимости мы указываем rseed().
lasso cox выбирает 48 из 500 признаков. Теперь мы можем предсказать пенализированное отношение относительной опасности (переменная riskscore_training) и оценить баллы риска. Мы будем использовать медиану riskcore_training в качестве порогового значения для классификации пациента как пациента с низким или высоким риском. Мы сохраним значение медианы в глобальном макросе (median) для последующего использования.
Теперь мы используем данные тестирования для проверки модели. Сначала мы прогнозируем пенализированное отношение рисков (переменная riskscore_testing) в тестовой выборке. Затем мы сравниваем riskscore_testing с медианой отношения рисков, полученной в обучающих данных ($median). Пациент классифицируется как пациент высокого риска, если прогнозируемый балл риска больше или равен медиане. Пациент классифицируется как пациент с низким риском, если прогнозируемая оценка риска меньше медианы.
. use lungcancer_testing, clear (Fictitious data on stage I adenocarcinoma lung cancer) . predict riskscore_testing (options hr penalized assumed; predicted hazard ratio with penalized coefficients) . generate byte risk = (riskscore_testing >= $median) . label define risk_lb 1 "High risk" 0 "Low risk" . label values risk risk_lb
Чтобы оценить эффективность классификации рисков, мы сначала смотрим на график Каплана-Мейера, на котором изображена кривая выживаемости для групп низкого и высокого риска.
. sts graph, by(risk)
На графике видно, что у прогнозируемых пациентов с высоким риском кривая выживаемости имеет более крутой спад, чем у прогнозируемых пациентов с низким риском. Чтобы подтвердить эту гипотезу, мы проводим лог-ранговый тест.
Лог-ранковый тест отвергает гипотезу о том, что прогнозируемые пациенты с низким и высоким риском имеют одинаковые функции выживания. И график Каплана-Мейера, и лог-ранговый тест показывают, что использование медианы прогнозируемых коэффициентов опасности позволяет эффективно отличить пациента с низким риском от пациента с высоким риском. Теперь мы можем делать прогностические прогнозы на основе новых данных.
Набор данных (newlungcancer.dta) содержит гистопатологические изображения некоторых новых пациентов с аденокарциномой I стадии, и мы пока не наблюдаем их время выживания, поскольку они еще живы. Основываясь на модели прогнозирования lasso cox, мы хотим классифицировать этих новых пациентов как пациентов с низким или высоким риском. Чтобы достичь этой цели, нам нужно предсказать только коэффициенты опасности новых пациентов и сравнить их с медианным уровнем риска, полученным в обучающих данных.
Таблица прогнозируемого уровня риска показывает, что 27 пациентов относятся к категории низкого риска, а 23 пациента — к категории высокого риска.
Ссылка
Ю, К., К. Чжан, Г. Дж. Берри, Р. Б. Альтман, К. Ре, Д. Л. Рубин и М. Снайдер. 2016. Прогнозирование прогноза немелкоклеточного рака легкого с помощью полностью автоматизированных характеристик микроскопических патологических изображений. Nature Communications 7(12474).