1. Введение

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

  1. Отток клиентов. Анализ выживаемости можно использовать для прогнозирования того, когда клиент, скорее всего, перестанет использовать продукт или услугу, или «отток». Эта информация может помочь компаниям разработать целевые стратегии удержания клиентов.
  2. Кредитный риск: анализ выживания также можно использовать для прогнозирования вероятности дефолта по кредиту или кредитной карте. Банки и другие кредиторы могут использовать эту информацию для корректировки процентных ставок или принятия других мер для минимизации своей подверженности риску.
  3. Отказ продукта: Анализ выживания можно использовать для прогнозирования того, когда продукт может выйти из строя или потребовать обслуживания. Эта информация может помочь производителям спланировать ремонт или замену и снизить риск неудовлетворенности клиентов.
  4. Время выхода на рынок: Анализ выживания также можно использовать для анализа времени, необходимого для успешного выхода нового продукта или услуги на рынок. Эта информация может помочь компаниям оптимизировать свои стратегии запуска продуктов и сократить время выхода на рынок.
  5. Удержание сотрудников. Анализ выживаемости можно использовать для прогнозирования вероятности ухода сотрудника из компании, что может помочь организациям разработать целевые стратегии удержания и снизить текучесть кадров.

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

Представьте, что для этого анализа мы генерируем 10 переменных (X1…X10) следующих семейств:

  1. Время: это время между определенным событием и возникновением другого события, например, время между запуском продукта и провалом продукта или время между приобретением клиентов и оттоком.
  2. Демографические данные клиентов: такие переменные, как возраст, пол, доход и местоположение, можно использовать для сегментации клиентов и выявления закономерностей оттока или другого поведения.
  3. Поведение клиентов: такие переменные, как частота покупок, стоимость покупки и уровень вовлеченности, могут дать представление о лояльности клиентов и их оттоке.
  4. Качество продукта или услуги: такие переменные, как обзоры продуктов, гарантии и история ремонта, могут использоваться для оценки качества продукта или услуги и прогнозирования вероятности отказа.
  5. Конкуренция: такие переменные, как доля рынка, цены и предпочтения клиентов, могут дать представление о конкурентном давлении и динамике рынка.
  6. Маркетинг и реклама. Такие переменные, как расходы на рекламу, охват и эффективность, могут дать представление об эффективности маркетинговых и рекламных кампаний.
  7. Экономические условия: такие переменные, как ВВП, процентные ставки и инфляция, могут дать представление о более широкой экономической среде и ее влиянии на выживание бизнеса.
  8. Отраслевые переменные: такие переменные, как изменения в нормативных актах, сбои в цепочке поставок и технологические достижения, могут дать представление об отраслевых факторах, которые могут повлиять на выживание бизнеса.
  9. Финансовые показатели: такие переменные, как выручка, размер прибыли и денежный поток, могут дать представление о финансовом состоянии компании и ее способности противостоять сбоям в бизнесе.
  10. Переменные управления: такие переменные, как эффективность руководства, моральный дух сотрудников и организационная культура, могут дать представление о внутренних факторах, которые могут повлиять на выживание бизнеса.

Этот анализ сравнивает различные модели машинного обучения для анализа выживания (время до события). Для этого используется смоделированный набор данных с помощью библиотеки coxed.

Был сгенерирован df 2000 наблюдений с 10 переменными с учетом 30% цензурированных данных. Анализ представлен ниже.

2. Управление данными

df <- sim.survdata(N=2000, T=250, xvars=10, censor=.3, num.data.frames = 1)
df<-df$data
head(df)
set.seed(123)
data.train <- sample_frac(df1, 0.7)
train_index <- as.numeric(rownames(data.train))
data.test <- df1 [-train_index, ]
surv_obj = Surv(data.test$time, data.test$status)

3. Важность переменных (SHAP)

6 x 11 sparse Matrix of class "dgCMatrix"

4. Традиционные модели

4.1 Модели Каплана-Мейера и Кокса

fit3<-survfit(Surv(time, status) ~ 1, data = data.train)
fit4 <- coxph(Surv(time, status) ~ ., data=data.train, x = TRUE)

5. Модели машинного обучения

5.1 Модель MTLR

fit5 <- mtlr(Surv(time, status)~., data = data.train, nintervals = 9)

5.2 Случайный лес выживания

fit6 <- rfsrc(Surv(time, status) ~ ., data.train)

5.3 Модель DeepSurv

fit7<-deepsurv(data = data.train, frac = 0.5, activation = "relu", 
               num_nodes = c(4L, 8L, 4L, 2L), dropout = 0.3, early_stopping = TRUE, 
               batch_size = 32L, epochs = 100L)

5.4 Ядро выживания SVM

fit8<- survivalsvm(Surv(time, status) ~ ., data = data.train, type = "regression", gamma.mu = 1, opt.meth = "quadprog", kernel = "lin_kernel")

6. Рейтинг моделей

##     Cindex      Model
## 1 0.529489        Cox
## 2 0.534930       MTLR
## 3 0.730064 RandForest
## 4 0.745106   DeepSurv
## 5 0.547318  KernelSVM

7. Таблица рейтинга моделей

8. Заключение

Почему DeepSurv превосходит Random Forest, KernelSVM и MTLR (которые выглядят как подбрасывание монеты, CIndex=0,5)?

DeepSurv — это фреймворк глубокого обучения, предназначенный для анализа выживания, который, как было показано, во многих случаях превосходит другие традиционные методы машинного обучения, такие как Random Forest, Kernel SVM и MTLR (многозадачная логистическая регрессия).

Причина превосходной производительности DeepSurv заключается в его способности фиксировать сложные нелинейные отношения между входными функциями и результатами выживания. Напротив, традиционные методы, такие как Random Forest, Kernel SVM и MTLR, обычно предполагают линейную или низкоразмерную связь между функциями и результатами, что может ограничивать возможности сложных наборов данных.

Кроме того, DeepSurv специально разработан для анализа выживаемости, что означает, что он может обрабатывать цензурированные данные (т. е. случаи, когда время выживания неизвестно), в то время как некоторые из традиционных методов машинного обучения могут неэффективно обрабатывать эти данные.

Что касается того, почему Random Forest, Kernel SVM и MTLR ведут себя как монета (0,5 CIndex), вероятно, это связано с их ограниченной способностью фиксировать сложные взаимосвязи, присутствующие в данных о выживании. Когда взаимосвязь между функциями и результатами является линейной или низкоразмерной, эти методы могут работать хорошо. Однако в более сложных наборах данных им может быть сложно собрать нужную информацию, что приведет к снижению производительности.

Таким образом, способность DeepSurv фиксировать сложные взаимосвязи и обрабатывать цензурированные данные делает его лучшим выбором для анализа выживания по сравнению с традиционными методами машинного обучения, такими как Random Forest, Kernel SVM и MTLR, которые могут испытывать трудности в более сложных наборах данных.

9. Обсуждение

Предположим, теперь мы создаем df с цензурой 80% данных. Мы видим, что модели изменили свою производительность, как показано на следующем графике:

Какое объяснение?

Когда доля цензурированных данных высока (например, 80%), традиционные модели анализа выживаемости, такие как пропорциональные опасности Кокса или ускоренное время отказа, могут работать неэффективно, поскольку они предполагают, что цензурирование неинформативно. Это предположение означает, что время цензурирования не связано с лежащим в основе временем выживания, что часто неверно, когда имеется большая доля подвергнутых цензуре данных.

Модели машинного обучения, такие как Random Forest и DeepSurv, могут обрабатывать цензурированные данные и не требуют предположений о распределении времени выживания. Однако модели различаются по своему подходу и сильным сторонам.

Случайный лес — это непараметрический метод, который строит несколько деревьев решений и объединяет их прогнозы для получения окончательного прогноза. Случайный лес может обрабатывать отсутствующие данные и может иметь дело со сложными взаимодействиями между предикторами. Кроме того, Random Forest может обрабатывать цензурированные данные, не требуя никаких предположений о распределении времени выживания.

DeepSurv, с другой стороны, представляет собой подход на основе нейронных сетей, специально разработанный для анализа выживания. DeepSurv использует модель пропорциональных опасностей Кокса в качестве основы и добавляет компонент нейронной сети для захвата нелинейных отношений. Модель использует индекс согласованности (C-индекс) в качестве функции потерь, которая является мерой того, насколько хорошо модель оценивает время выживания людей.

Хотя и Random Forest, и DeepSurv могут обрабатывать цензурированные данные, какая модель лучше, зависит от конкретного набора данных и вопроса исследования. В общем, случайный лес может быть предпочтительнее, когда в наборе данных много предикторов, некоторые из которых могут иметь нелинейные отношения с результатом. Кроме того, случайный лес может быть предпочтительнее, когда исследовательский вопрос не требует интерпретации эффектов отдельных предикторов.

В случае высокой доли цензурированных данных (например, 80%) Random Forest может быть лучше, чем DeepSurv, поскольку он не требует никаких предположений о распределении времени выживания и может обрабатывать сложные взаимодействия между предикторами.