Análisis de supervivencia

Índice de contenidos

Introducción

En ocasiones nos interesa predecir algún evento en base a la navegación de los usuarios de un site, o describir la relación entre las variables de navegación y ese evento. Como alternativa a otros modelos (regresión, redes neuronales…) haremos una introducción al análisis de supervivencia, técnica muy extendida en Ciencias de la Salud. 

Orígenes y aplicaciones

Encontramos los antecedentes del análisis de supervivencia en las tablas de mortalidad publicadas por el astrónomo inglés Edmon Halley en el s.XVII.

El análisis de supervivencia tiene sus inicios en el campo de la ingeniería, con la finalidad de analizar la fiabilidad de los componentes de un dispositivo. La industria militar desarrolló  estas técnicas durante la Segunda Guerra Mundial.

En los años 70 se extendió su aplicación en Ciencias de la Salud, en estudios clínicos y epidemiológicos que requerían seguimiento de pacientes.

Actualmente es una técnica bastante empleada en el análisis de abandono de usuarios (churn).

Descripción

El análisis de supervivencia lo conforman una serie de técnicas en las que se realiza el seguimiento de cada sujeto durante un periodo, registrando el tiempo transcurrido desde un evento inicial hasta el evento terminal (o hasta el final del seguimiento si no llega a ocurrir dicho evento).

El evento terminal se suele definir como estado ‘muerte’, de ahí lo de supervivencia, ya que en sus orígenes este evento se asociaba al fallo de un elemento o a la muerte de un paciente. Actualmente puede hacer referencia al alta del paciente, curación de una enfermedad…

El objetivo es describir, por un lado, la evolución de la tasa de riesgo de dicho evento a lo largo del seguimiento, y por otro, las probabilidades de ocurrencia.

Uso en analítica digital

Trasladado al mundo de la analítica, el evento terminal puede estar definido por una compra online, un registro de usuario… Dicho esto, cuando hablemos de supervivientes, nos referiremos a usuarios que aún no han llevado a cabo el evento de interés.

A través del identificador de usuario, haremos un seguimiento de su actividad a lo largo de todas sus sesiones en el site.

Incluso podemos ir más allá y conectar la actividad online con la offline, si disponemos de un identificador (ej: número de tarjeta de fidelización) que nos permita vincular la navegación logueada en el site con una conversión en tienda física.

Practicando en R

En este post nos centraremos en una introducción a la preparación de los datos, la estimación de la curva de supervivencia y el modelo de regresión de riesgos proporcionales de Cox, con la finalidad de describir la relación entre variables de navegación y compra online. Para ello haremos uso de la librería de R survival.

Preparación de los datos.

Dataset.

Nuestro dataset debe contener para cada usuario mínimo dos campos:

  • time: indica el tiempo transcurrido desde el inicio del seguimiento (ej: días desde primera sesión registrada).
  • label: valor binario que nos indica si el usuario ha llevado a cabo el evento terminal o no (ej: compra online=1, no compra online=0).

Función Surv.

Con esta función, pasando como primer argumento el tiempo y como segundo el evento:

Nos devuelve un objeto tipo survival:

Curva de supervivencia.

Esta curva es la representación gráfica de la proporción de sujetos supervivientes en distintos intervalos de tiempo. 
    El método más generalizado para su cálculo es el de Kaplan-Meier.

Función survfit.

Pasando como argumento una fórmula basada en el objeto survival previamente creado, nos devuelve un objeto con la curva de supervivencia.

Interpretación.

De aquí podemos interpretar que en el cuarto día desde la primera sesión registrada la probabilidad de supervivencia (no haber comprado online) es 0.986.

Representación gráfica.

Modelo de regresión de riesgos proporcionales de Cox.

Este modelo nos permite evaluar el efecto de un conjunto de variables sobre la tasa de incidencia del evento de interés (tasa de riesgo o hazard rate).

Además podemos utilizar el modelo para explicar y predecir la evolución de la tasa de riesgo a partir de dichas variables.

Para este caso práctico asumimos que las variables continuas son lineales y comprobamos el supuesto de proporcionalidad.

Preparación de los datos.

Nuestro dataset original está compuesto por variables numéricas y categóricas.

Debemos transformar las variables con k categorías en k-1 variables dummy (1/0) respecto a una categoría de referencia. 

Ej: la variable ‘device’ (dispositivo en primera sesión) con 3 categorías (mobile, tablet, desktop) pasaría a introducirse en el modelo como dos variables: 

isMobile (1 si es mobile, 0 resto)

isDesktop (1 si es desktop, 0 resto)

donde la categoría tablet queda contemplada cuando isMobile=0 y isDesktop=0.

Función coxph.

Esta función ajusta un modelo de regresión de riesgos proporcionales de Cox, pasándole como primer argumento una fórmula basada en un objeto survival y las variables predictoras (ej: dispositivo primera sesión, nuevo usuario, aterriza en la home en primera sesión…).

Validación del supuesto de riesgos proporcionales.

Para poder aplicar este modelo se ha de cumplir la condición de proporcionalidad, es decir, los valores que toma la tasa de riesgo para individuos con un patrón determinado de valores A, deben ser proporcionales a los de individuos con otro patrón B.

Aplicamos la función cox.zph al objeto devuelto por la función anterior.

El supuesto de riesgos proporcionales se cumple para las covariables isNewUser, diffCateg y adds (p-valor>0.05, aceptamos hipótesis nula de proporcionalidad).

Esto significa que el resto de variables habrá que introducirlas en el modelo previa estratificación (función strata).

       Comprobamos supuesto de proporcionalidad en nuevo modelo.

Tanto el test global como por covariables es no significativo (p-valor>0.05), luego aceptamos hipótesis de proporcionalidad.

Interpretación del modelo.

Una vez comprobada la condición de proporcionalidad pasaremos a interpretar el modelo, aplicando la función summary al objeto que almacena el modelo.

Lo primero que podemos observar es que las variables con riesgos no proporcionales que se introdujeron estratificadas en el modelo no devuelven un coeficiente con el cual medir su efecto sobre la compra online.

  • Analizando el p-valor global del modelo (en verde al pie), vemos que es significativo (p-valor<<<0.05, rechazando hipótesis nula de no relación entre variables del modelo y tasa de riesgo).
  • Analizando el p-valor de las covariables, para este dataset las variables menos asociadas con la compra online son isNewUser (el usuario tuvo su primera visita al site en el periodo observado) y diffCateg (número total de categorías diferentes consultadas) con un p-valor>0.05 (en rojo).
    Por otra parte, y como era de esperar, encontramos adds (número de veces que se ha añadido a carrito) como variable más asociada a compra (p-valor<<<0.05).

  • Pasemos a interpretar los coeficientes devueltos por el modelo, en el caso de adds:
    • El coeficiente de regresión estimado es 0.12145, que al ser positivo indica un aumento en la tasa de riesgo (compra online) cuando se incrementa el valor de la variable (cuantas más veces se añade a carrito, mayor probabilidad de compra).
    • Tomamos exponencial del coeficiente, que valora el ‘riesgo’ de compra online de los usuarios según el número de veces que han añadido a carrito:
      [ exp(0.12145)=1.1291 ]

      ¿Cómo interpretamos este valor? 1.1291 es el factor por el que se multiplica la tasa de riesgo (compra online) cuando la variable adds se incrementa en 1 unidad y el resto de variables se mantiene constante.
    • Del intervalo de confianza del exponencial del coeficiente también podemos deducir que adds es significativa, ya que no contiene el valor 1 (hipótesis nula de no relación entre la variable y la tasa de riesgo)
      [ IC 95%: 1.1013 a 1.158 ]

Conclusiones del modelo.

La variable adds es significativa (p<<<0.05). El ‘riesgo’ de compra se multiplica por 1.13 (IC 95%: 1.10 a 1.16) cada vez que el usuario añade a carrito.

Conclusiones

En este post hemos planteado el uso del análisis de supervivencia como técnica para describir la asociación entre las variables de navegación en el site y la compra online. Para ello hemos revisado la curva de supervivencia de Kaplan-Meier y el modelo de regresión de riesgos proporcionales de Cox.

Share on facebook
Share on twitter
Share on linkedin
Share on email
5 min
Suscríbete a nuestra newsletter

Los mejores artículos de analítica digital para potenciar tu negocio.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Entradas relacionadas

Comparativa de herramientas para procesos ETL

En este post haremos una revisión sobre algunos de los lenguajes/herramientas más utilizados en nuestro ecosistema de analítica digital en procesos de extracción, transformación y carga de datos.

3 minutos

Dificultad

Jupyter Notebook

Jupyter Notebook es una aplicación web de código abierto que permite incluir texto, vídeo, audio e imágenes.

4 minutos

Dificultad

Cómo integrar KNIME con R

Integrar KNIME con R nos permite construir flujos de análisis de datos fácilmente comprensibles.

2 minutos

Dificultad

Ir arriba

Esta web utiliza ‘cookies’ de terceros. Al clicar aceptar está aceptando el uso que realizamos de las cookies. Para más información puede consultar nuestra Política de cookies