Modelo de supervivencia para predecir la rotación: ¿predictores que varían en el tiempo?

17

Estoy buscando construir un modelo predictivo para predecir el abandono y buscar usar un modelo de supervivencia de tiempo discreto ajustado a un conjunto de datos de entrenamiento de período de persona (una fila para cada cliente y período discreto en que estuvieron en riesgo, con un indicador de evento - igual a 1 si la rotación se produjo en ese período, de lo contrario 0).

  • Estoy ajustando el modelo usando regresión logística ordinaria usando la técnica de Singer y Willet.
  • El abandono de un cliente puede ocurrir en cualquier lugar durante un mes, pero es solo a finales de mes cuando lo sabemos (es decir, en algún momento durante ese mes se fueron). Se están utilizando 24 meses para entrenamiento.
  • La variable de tiempo que se utiliza es la hora de origen de la muestra: todos los clientes activos a partir del 31/12/2008: todos reciben t = 0 a partir de enero de 2009 (no es la forma clásica de hacerlo, pero creo que es la forma de construir un modelo predictivo versus uno estadístico tradicional). Una covariable utilizada es la tenencia del cliente en ese momento.
  • Se construyeron una serie de covariables, algunas que no cambian en las filas del conjunto de datos (para un cliente determinado) y otras que sí lo hacen.

  • Estas covariables de variante de tiempo son el problema y lo que me está causando cuestionar un modelo de supervivencia para la predicción de abandono (en comparación con un clasificador regular que predice el abandono en los próximos x meses en función de los datos actuales de la instantánea). Los invariantes en el tiempo describen la actividad del mes anterior y se espera que sean desencadenantes importantes.

La implementación de este modelo predictivo, al menos basado en mi pensamiento actual, es calificar la base de clientes al final de cada mes, calculando la probabilidad / riesgo de abandono en algún momento durante el próximo mes. Luego nuevamente durante los próximos 1,2 o 3 meses. Luego para los próximos 1,2,3,4,5,6 meses. Para la probabilidad de abandono de 3 y 6 meses, estaría usando la curva de supervivencia estimada.

El problema:

Cuando se trata de pensar en la puntuación, ¿cómo puedo incorporar predictores que varían en el tiempo? Parece que solo puedo puntuar con predictores invariantes en el tiempo o para incluir aquellos que son invariantes en el tiempo, tienes que hacer que sean invariantes en el tiempo: establece el valor "en este momento".

¿Alguien tiene experiencia o pensamientos sobre este uso de un modelo de supervivencia?

Actualización basada en el comentario de @JVM:

el problema no es estimar el modelo, interpretar los coeficientes, trazar las gráficas de riesgo / supervivencia de valores de covariables interesantes utilizando los datos de capacitación, etc. El problema está en usar el modelo para pronosticar el riesgo para un cliente determinado. Digamos que a fines de este mes, quiero calificar a todos los que todavía son clientes activos con este modelo. Quiero pronosticar esa estimación de riesgo a lo largo de x períodos (riesgo de cerrar la cuenta al final del próximo mes. Riesgo de cerrar la cuenta al final de dos meses a partir de ahora, etc.). Si hay covariables que varían en el tiempo, se desconocen sus valores en períodos futuros, entonces, ¿cómo utilizar el modelo?

Actualización final:

un conjunto de datos de período de persona tendrá una entrada para cada persona y cada período de tiempo que están en riesgo. Digamos que hay J períodos de tiempo (tal vez J = 1 ... 24 durante 24 meses) Digamos que construyo un modelo de supervivencia de tiempo discreto, donde por simplicidad solo tratamos el tiempo T como lineal y tenemos dos covariables X y Z donde X es el tiempo -invariante, lo que significa que es constante en cada período para la i-ésima persona y Z varía en el tiempo, lo que significa que cada registro para la i-ésima persona puede tomar un valor diferente. Por ejemplo, X puede ser el género de los clientes y Z puede ser cuánto valen para la empresa en el mes anterior. El modelo para el logit del peligro para la i-ésima persona en el enésimo período de tiempo es:

losolyot(h(tyoj))=α0 0+α1Tj+β1Xyo+β2Zyoj

Zj

Las únicas soluciones que puedo pensar son:

  • No utilice covariables que varían en el tiempo como Z. Esto debilitaría en gran medida el modelo para predecir el evento de agitación, ya que, por ejemplo, ver una disminución en Z nos indicaría que el cliente se está desconectando y tal vez se está preparando para irse.
  • Use covariables que varían con el tiempo, pero las retrasa (como Z estaba arriba) lo que nos permite pronosticar sin importar cuántos períodos hayamos rezagado la variable (nuevamente, pensando en el modelo que anota nuevos datos actuales).
  • Use covariables que varían en el tiempo, pero manténgalas como constantes en el pronóstico (por lo que el modelo se ajustó para datos variables, pero para la predicción los dejamos constantes y simulamos cómo los cambios en estos valores, si luego se observan realmente, afectarán el riesgo de agitación.
  • Utilice covariables variables en el tiempo, pero impute sus valores futuros en función de un pronóstico a partir de datos conocidos. Por ejemplo, pronostique la para cada cliente.Zj
B_Miner
fuente
Un par de preguntas: Primero, ¿estás casado con el uso de un modelo de tiempo discreto? Lo que desea hacer puede ser más simple en un modelo de supervivencia paramétrico. En segundo lugar, ¿podría proporcionar un ejemplo de lo que quiere decir con abandono? ¿Tal vez solo un ejemplo de cómo se ven sus datos?
Jason Morgan
@JWM. La cancelación significa que el cliente canceló su cuenta. Como solo sé el mes en que el cliente canceló, creo que el tiempo discreto es apropiado. Creo que existe el mismo problema con los predictores que varían en el tiempo si el modelo es de tiempo discreto o continuo (Cox o AFT) ¿No?
B_Miner
Pido disculpas por todavía no entender su preocupación. Debería poder estimar su modelo lo suficientemente bien. Sin embargo, debido a que es probable que tenga un error de medición en su TVC y variable dependiente, probablemente debería usar un retraso de TVC en el modelo. De lo contrario, corre el riesgo de utilizar un valor covariable que se mide después de la ocurrencia del evento como un predictor para ese evento. Puede ver el problema de la coherencia de tiempo. Si bien sé que su objetivo es la predicción, si desea intervalos de confianza razonables, querrá estimar errores estándar robustos (al menos).
Jason Morgan
@JVM aparentemente no he podido explicarme bien. Agregué una respuesta en la pregunta.
B_Miner
t=0s>0 0PAG(Tyo>s+XEl |Fs)

Respuestas:

1

Gracias por la aclaración, B_Miner. Yo mismo no pronostico mucho, así que tome lo que sigue con una pizca de sal. Esto es lo que haría como al menos un primer corte en los datos.

  • Primero, formule y calcule un modelo que explique sus TVC. Realice todas las validaciones cruzadas, la verificación de errores, etc., para asegurarse de tener un modelo decente para los datos.
  • Segundo, formular y estimar un modelo de supervivencia (de cualquier sabor). Haga toda la validación cruzada, verificación de errores, para asegurarse de que este modelo también sea razonable.
  • Tercero, establezca un método para utilizar los pronósticos del modelo de TVC como base para pronosticar los riesgos de abandono y cualquier otra cosa que desee. Una vez más, verifique que las predicciones sean razonables utilizando su muestra.

Una vez que tenga un modelo que considere razonable, sugeriría que arranque los datos como una forma de incorporar el error en el primer modelo de TVC en el segundo modelo. Básicamente, aplique los pasos 1-3 N veces, cada vez que tome una muestra de arranque de los datos y produzca un conjunto de pronósticos. Cuando tenga un número razonable de pronósticos, resúmalos de la forma que considere apropiada para su tarea; por ejemplo, proporcionar un riesgo medio de abandono para cada perfil de interés individual o covariable, así como intervalos de confianza del 95%.

Jason Morgan
fuente
@JVM. ¿Leí correctamente que su sugerencia es mi última opción de solución anterior (en la actualización final)? ¿Desarrolla modelos para pronosticar cada Z (TVC) para usar en el modelo de supervivencia real?
B_Miner
2

A mi entender, hay dos paradigmas de análisis de supervivencia que podrían utilizarse. El marco de regresión de Cox permite covariables que varían en el tiempo y produciría una estimación del riesgo de cancelación condicionada a cualquier conjunto particular de covariables en relación con el nivel medio de cancelación. El marco glm con errores de Poisson también es un modelo de riesgos proporcionales y es particularmente adecuado para intervalos discretos. JVM ha señalado que existe un error potencial al usar datos incompletos en el mes actual, pero tengo la sensación de que desea una estimación que esté condicionada al último valor de una covariable o conjunto de covariables. Una mejor descripción de la situación de los datos podría arrojar ejemplos mejor trabajados ...

DWin
fuente