Модель выживания для прогнозирования оттока - изменяющиеся во времени предикторы?

17

Я рассчитываю построить прогностическую модель для прогнозирования оттока и использовать модель выживания с дискретным временем, адаптированную к набору данных за период человека (одна строка для каждого клиента и дискретный период, в котором они находились под угрозой, с показателем для события - равным 1 если отток произошел в тот период, иначе 0).

  • Я подгоняю модель, используя обычную логистическую регрессию, используя технику Сингера и Виллета.
  • Отток клиентов может произойти где угодно в течение месяца, но только в конце месяца мы узнаем об этом (то есть когда-то в течение того месяца, когда они ушли). 24 месяца используется для обучения.
  • В качестве временной переменной используется время начала выборки - все клиенты, активные на 31.12.2008 г., - все они получают t = 0 по состоянию на январь 2009 г. (это не классический способ сделать это, но я верю, что при построении прогнозная модель по сравнению с традиционной статистической). Используемая ковариата - это срок владения клиента на тот момент времени.
  • Был создан ряд ковариат, некоторые из которых не меняются по строкам набора данных (для данного клиента), а некоторые - изменяются.

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

Реализация этой прогностической модели, по крайней мере, на основе моего нынешнего мышления, состоит в том, чтобы оценивать клиентскую базу в конце каждого месяца, вычисляя вероятность / риск оттока в течение следующего месяца. Затем снова на следующие 1,2 или 3 месяца. Затем на следующие 1,2,3,4,5,6 мес. Для вероятности оттока за 3 и 6 месяцев я бы использовал оценочную кривую выживаемости.

Проблема:

Когда речь заходит о подсчете очков, как я могу использовать изменяющиеся во времени предикторы? Кажется, что я могу оценивать только с постоянными по времени предикторами или включать те, которые не зависят от времени, вы должны сделать их неизменными по времени - установить значение «прямо сейчас».

У кого-нибудь есть опыт или мысли об использовании модели выживания?

Обновление на основе комментария @JVM:

проблема не в оценке модели, интерпретации коэффициентов, построении графиков опасности / выживания интересных ковариатных значений с использованием данных обучения и т. Д. Проблема заключается в использовании модели для прогнозирования риска для данного клиента. Скажем, в конце этого месяца я хочу оценить всех, кто еще является активным клиентом этой модели. Я хочу спрогнозировать этот риск на основе x периодов (риск закрытия счета в конце следующего месяца. Риск закрытия счета в конце двух месяцев и т. Д.). Если есть ковариаты, изменяющиеся во времени, их значения неизвестны для любых будущих периодов, так как использовать модель?

Окончательное обновление.

В наборе данных за период будет указана запись для каждого человека и каждого периода времени, в котором они находятся под угрозой. Скажем, есть J периодов времени (возможно, J = 1 ... 24 в течение 24 месяцев). Допустим, я строю модель выживания с дискретным временем, где для простоты мы просто рассматриваем время T как линейное и имеем два ковариата X и Z, где X - время -инвариант, означающий, что он постоянен в каждом периоде для i-го человека, а Z изменяется во времени, что означает, что каждая запись для i-го человека может принимать различное значение. Например, X может быть пол клиентов, а Z может быть сколько они стоили для компании в предыдущем месяце. Модель логита опасности для i-го человека в j-й период времени:

LограммяT(час(TяJ))знак равноα0+α1TJ+β1Икся+β2ZяJ

ZJ

Я могу думать только о следующих решениях:

  • Не используйте изменяющиеся во времени ковариаты, такие как Z. Это сильно ослабило бы модель для прогнозирования события вспенивания, хотя, например, уменьшение Z означает, что клиент отключается и, возможно, готовится уйти.
  • Используйте изменяющиеся во времени ковариаты, но отставайте от них (как Z был выше), что позволяет нам прогнозировать, сколько раз мы отстали от переменной (опять же, думая о модели, забивающей новые текущие данные).
  • Используйте изменяющиеся во времени ковариаты, но сохраняйте их в качестве констант в прогнозе (поэтому модель была приспособлена для изменяющихся данных, но для прогнозирования мы оставляем их постоянными и моделируем, как изменения в этих значениях, если они будут наблюдаться позднее, повлияют на риск оттока.
  • ZJ
B_Miner
источник
Пара вопросов: во-первых, вы готовы использовать модель с дискретным временем? То, что вы хотите сделать, может быть проще в параметрической модели выживания. Во-вторых, не могли бы вы привести пример того, что вы подразумеваете под оттоком; а может, просто пример того, как выглядят ваши данные?
Джейсон Морган
@JWM. Отток означает, что клиент отменил свой аккаунт. Поскольку я знаю только месяц, в течение которого клиент отменил, я думаю, что подходящее дискретное время. Я полагаю, что та же самая проблема с изменяющимися во времени предикторами существует, если модель является дискретным или непрерывным временем (Cox или AFT) Нет?
B_Miner
Я прошу прощения за то, что все еще не совсем понял вашу озабоченность. Вы должны быть в состоянии оценить свою модель достаточно хорошо. Хотя, поскольку у вас, вероятно, будет ошибка измерения в вашем TVC и зависимой переменной, вам, вероятно, следует использовать отставание TVC в модели. В противном случае вы рискуете использовать ковариатное значение, которое измеряется после возникновения события, в качестве предиктора для этого события. Вы можете увидеть проблему согласованности времени. Хотя я знаю, что ваша цель - прогнозирование, если вы хотите получить разумные доверительные интервалы, вам нужно оценить надежные стандартные ошибки (по крайней мере).
Джейсон Морган
@ JVM, видимо, я не смог хорошо себя объяснить. Я добавил ответ в вопросе.
B_Miner
t=0s>0п(Tя>s+Икс|Fs)

Ответы:

1

Спасибо за разъяснения, B_Miner. Я не делаю много прогнозов сам, поэтому возьмите то, что следует с щепоткой соли. Вот что я хотел бы сделать, по крайней мере, в качестве первого разреза данных.

  • Сначала сформулируйте и оцените модель, которая объясняет ваши ТВЦ. Выполните всю перекрестную проверку, проверку ошибок и т. Д., Чтобы убедиться, что у вас есть подходящая модель для данных.
  • Во-вторых, сформулируйте и оцените модель выживания (на любой вкус). Выполните всю перекрестную проверку, проверку ошибок, чтобы убедиться, что эта модель также является разумной.
  • В-третьих, остановитесь на методе использования прогнозов из модели TVC в качестве основы для прогнозирования рисков оттока и всего, что вы хотите. Еще раз, убедитесь, что прогнозы являются разумными, используя ваш образец.

Если у вас есть модель, которая, по вашему мнению, является разумной, я бы предложил выполнить начальную загрузку данных, чтобы включить ошибку первой модели TVC во вторую модель. В основном, применяйте шаги 1-3 N раз, каждый раз беря образец начальной загрузки из данных и производя набор прогнозов. Когда у вас есть разумное количество прогнозов, суммируйте их так, как вы считаете подходящими для вашей задачи; например, предоставить средний риск оттока для каждого индивидуального или ковариатического профиля интереса, а также 95% доверительные интервалы.

Джейсон Морган
источник
@JVM. Правильно ли я вас понял, что ваше предложение - мой последний вариант решения выше (в финальном обновлении). Что вы разрабатываете модели для прогнозирования каждого Z (TVC) для использования в реальной модели выживания?
B_Miner
2

На мой взгляд, есть две парадигмы анализа выживания, которые можно использовать. Структура регрессии Кокса позволяет варьировать во времени ковариат и дает оценку риска отмены, обусловленную любым конкретным набором ковариат по отношению к среднему уровню отмены. Структура glm с пуассоновскими ошибками также является моделью пропорциональных рисков и особенно подходит для дискретных интервалов. JVM указала, что существует потенциальная ошибка при использовании неполных данных в текущем месяце, но смысл, который я получаю, заключается в том, что вы хотите получить оценку, которая зависит от самого последнего значения ковариата или набора ковариат. Лучшее описание ситуации с данными могло бы привести к лучше проработанным примерам ....

Dwin
источник