Как модели машинного обучения (GBM, NN и т. Д.) Можно использовать для анализа выживания?


13

Я знаю, что традиционные статистические модели, такие как регрессия пропорциональных рисков Кокса и некоторые модели Каплана-Мейера, могут использоваться для прогнозирования дней до следующего возникновения события, скажем, провала и т. Д., Т. Е. Анализа выживания

Вопросов

  1. Как можно использовать регрессионную версию моделей машинного обучения, таких как GBM, нейронные сети и т. Д., Для прогнозирования дней до наступления события?
  2. Я полагаю, что использование дней до появления в качестве целевой переменной и упрощение работы регрессионной модели не сработает? Почему это не работает и как это можно исправить?
  3. Можем ли мы преобразовать проблему анализа выживания в классификацию и затем получить вероятности выживания? Если тогда как создать двоичную целевую переменную?
  4. Каковы плюсы и минусы подхода машинного обучения по сравнению с регрессией пропорциональных рисков Кокса, моделями Каплана-Мейера и т. Д.?

Представьте пример входных данных в формате ниже

введите описание изображения здесь

Замечания:

  • Датчик проверяет данные с интервалами в 10 минут, но иногда данные могут отсутствовать из-за проблем с сетью и т. Д., Как показано строкой с NA.
  • var1, var2, var3 являются предикторами, объясняющими переменными.
  • fail_flag сообщает, произошел сбой или нет.
  • У нас есть данные за последние 6 месяцев через каждые 10 минут для каждого идентификатора машины.

РЕДАКТИРОВАТЬ:

Ожидаемый выходной прогноз должен быть в следующем формате введите описание изображения здесь

Примечание: я хочу предсказать вероятность отказа для каждой из машин на следующие 30 дней на ежедневном уровне.


1
Я думаю, это помогло бы, если бы вы могли объяснить, почему это данные по времени; какой именно ответ вы хотите смоделировать?
Клифф AB

Я отредактировал и добавил ожидаемую выходную таблицу прогнозирования, чтобы прояснить ее. Дайте мне знать, если у вас есть дополнительные вопросы.
GeorgeOfTheRF

1
В некоторых случаях существуют способы преобразования данных о выживаемости в бинарные результаты, например, модели рисков с дискретным временем: statisticshorizons.com/wp-content/uploads/Allison.SM82.pdf . Некоторые методы машинного обучения, такие как случайные леса, могут моделировать данные времени до события, например, используя статистику ранга журнала в качестве критерия разделения.
dsaxton

@dsaxton Спасибо. Можете ли вы объяснить, как преобразовать вышеуказанные данные о выживании в бинарные результаты?
GeorgeOfTheRF

После более пристального взгляда кажется, что у вас уже есть двоичные результаты с failure_flag.
dsaxton

Ответы:


6

Для случая нейронных сетей это многообещающий подход: WTTE-RNN - Менее предсказуемое предсказание оттока .

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

Автор также выпустил свою реализацию на Github .


2

Посмотрите на эти ссылки:

https://www.stats.ox.ac.uk/pub/bdr/NNSM.pdf

http://pcwww.liv.ac.uk/~afgt/eleuteri_lyon07.pdf

Также обратите внимание, что традиционные модели, основанные на опасностях, такие как пропорциональные опасности Кокса (CPH), предназначены не для прогнозирования времени события, а для вывода влияния (корреляции) переменных на i) наблюдения событий и, следовательно, ii) кривую выживания , Почему? Посмотрите на MLE CPH.

Следовательно, если вы хотите более прямо предсказать что-то вроде «дней до появления», CPH может быть нежелательным; другие модели могут лучше служить вашей задаче, как отмечено в приведенных выше двух ссылках.


1

Как сказал @dsaxton, вы можете построить модель с дискретным временем. Вы устанавливаете это, чтобы предсказать p (сбой в этот день, учитывая, выжил до предыдущего дня). Ваши входные данные - текущий день (в любом представлении, которое вы хотите), например, одно горячее кодирование, целое число, .. Сплайн ... Как и любые другие независимые переменные, которые вы можете захотеть

Таким образом, вы создаете строки данных, для каждого образца, которые выжили до времени t-1, умер ли он в момент времени t (0/1).

Таким образом, теперь вероятность выживания до момента времени T является произведением p (не умирай в момент времени t, заданный, не умирал в момент времени t-1) при t = 1 до T. Т.е. вы делаете T прогнозы из своей модели, а затем умножить вместе.

Я бы сказал, что причина не в том, чтобы напрямую предсказать время до отказа, а из-за скрытой структуры проблемы. Например, что вы вводите для машин, которые не вышли из строя. Базовая структура - это, по сути, независимые события: сбой в момент времени t не повредил до t-1. Так, например, если вы предполагаете, что оно постоянное, тогда ваша кривая выживания становится экспоненциальной (см. Модели риска)

Обратите внимание, что в вашем случае вы можете моделировать с 10-минутным интервалом или агрегировать проблему классификации до уровня дня.

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