1. Введение
Анализ выживания — это статистический метод, который обычно используется в бизнесе и микроэкономике для анализа времени событий или сбоев, что может помочь в принятии решений и оптимизации распределения ресурсов. Вот некоторые примеры:
- Отток клиентов. Анализ выживаемости можно использовать для прогнозирования того, когда клиент, скорее всего, перестанет использовать продукт или услугу, или «отток». Эта информация может помочь компаниям разработать целевые стратегии удержания клиентов.
- Кредитный риск: анализ выживания также можно использовать для прогнозирования вероятности дефолта по кредиту или кредитной карте. Банки и другие кредиторы могут использовать эту информацию для корректировки процентных ставок или принятия других мер для минимизации своей подверженности риску.
- Отказ продукта: Анализ выживания можно использовать для прогнозирования того, когда продукт может выйти из строя или потребовать обслуживания. Эта информация может помочь производителям спланировать ремонт или замену и снизить риск неудовлетворенности клиентов.
- Время выхода на рынок: Анализ выживания также можно использовать для анализа времени, необходимого для успешного выхода нового продукта или услуги на рынок. Эта информация может помочь компаниям оптимизировать свои стратегии запуска продуктов и сократить время выхода на рынок.
- Удержание сотрудников. Анализ выживаемости можно использовать для прогнозирования вероятности ухода сотрудника из компании, что может помочь организациям разработать целевые стратегии удержания и снизить текучесть кадров.
В целом, анализ выживания может быть ценным инструментом в бизнесе и микроэкономике для прогнозирования времени событий или неудач и информирования при принятии решений.
Представьте, что для этого анализа мы генерируем 10 переменных (X1…X10) следующих семейств:
- Время: это время между определенным событием и возникновением другого события, например, время между запуском продукта и провалом продукта или время между приобретением клиентов и оттоком.
- Демографические данные клиентов: такие переменные, как возраст, пол, доход и местоположение, можно использовать для сегментации клиентов и выявления закономерностей оттока или другого поведения.
- Поведение клиентов: такие переменные, как частота покупок, стоимость покупки и уровень вовлеченности, могут дать представление о лояльности клиентов и их оттоке.
- Качество продукта или услуги: такие переменные, как обзоры продуктов, гарантии и история ремонта, могут использоваться для оценки качества продукта или услуги и прогнозирования вероятности отказа.
- Конкуренция: такие переменные, как доля рынка, цены и предпочтения клиентов, могут дать представление о конкурентном давлении и динамике рынка.
- Маркетинг и реклама. Такие переменные, как расходы на рекламу, охват и эффективность, могут дать представление об эффективности маркетинговых и рекламных кампаний.
- Экономические условия: такие переменные, как ВВП, процентные ставки и инфляция, могут дать представление о более широкой экономической среде и ее влиянии на выживание бизнеса.
- Отраслевые переменные: такие переменные, как изменения в нормативных актах, сбои в цепочке поставок и технологические достижения, могут дать представление об отраслевых факторах, которые могут повлиять на выживание бизнеса.
- Финансовые показатели: такие переменные, как выручка, размер прибыли и денежный поток, могут дать представление о финансовом состоянии компании и ее способности противостоять сбоям в бизнесе.
- Переменные управления: такие переменные, как эффективность руководства, моральный дух сотрудников и организационная культура, могут дать представление о внутренних факторах, которые могут повлиять на выживание бизнеса.
Этот анализ сравнивает различные модели машинного обучения для анализа выживания (время до события). Для этого используется смоделированный набор данных с помощью библиотеки 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, поскольку он не требует никаких предположений о распределении времени выживания и может обрабатывать сложные взаимодействия между предикторами.