EL objetivo de este proyecto es hacer un análisis de superviviencia de los clientes de un banco. Ver los detonantes de que los clientes dejen al banco y los puntos que se podrían mejorar para mejorar la retenión de clientes

Para hacer esto utlizaremos la base de datos que se nos proporcionó y le aplicaremos distintas pruebas estadísticas +Acontinuación muestro las primeras filas de nuestra base de datos con la inforamción pertinente de los clientes

head(banca)
##   RowNumber CustomerId  Surname CreditScore Geography Gender Age Tenure
## 1         1   15634602 Hargrave         619    France Female  42      2
## 2         2   15647311     Hill         608     Spain Female  41      1
## 3         3   15619304     Onio         502    France Female  42      8
## 4         4   15701354     Boni         699    France Female  39      1
## 5         5   15737888 Mitchell         850     Spain Female  43      2
## 6         6   15574012      Chu         645     Spain   Male  44      8
##     Balance NumOfProducts HasCrCard IsActiveMember EstimatedSalary Exited
## 1      0.00             1         1              1       101348.88      1
## 2  83807.86             1         0              1       112542.58      0
## 3 159660.80             3         1              0       113931.57      1
## 4      0.00             2         0              0        93826.63      0
## 5 125510.82             1         1              1        79084.10      0
## 6 113755.78             2         1              0       149756.71      1
##   tsal nprod nedad   pais   sexo tarjeta producto
## 1    1     0     1 France Female       1        1
## 2    1     0     1  Spain Female       0        1
## 3    1     1     1 France Female       1        3
## 4    0     1     1 France Female       0        2
## 5    0     0     1  Spain Female       1        1
## 6    1     1     1  Spain   Male       1        2

Seguido de esto, se le aplicó una prueba de kaplan-meier a los vectores que nos dicen el tiempo que lleva en el banco una persona o cuantó tiempo duró. De la prueba obtenemos la curva de supervivencia de los clientes es decir si siguen siendo clientes o no y la curva de riesgo acumulado para poder ver como se va incrementando su riesgo de desertar como clientes. De aquí en adelante al decir supervivencia de los clientes, nos referimos a que se mantengan como clientes.

ggsurvplot(fit = banca.km, data = banca, conf.int = T, title = "Curva de Supervivencia", 
           xlab = "Tiempo", ylab = "Probabilidad de supervivencia", legend.title = "Estimación", 
           legend.labs = "Kaplan-Meier")

ggsurvplot(fit = banca.km, data = banca, fun = 'cumhaz' ,conf.int = T, title = "Riesgo Acumulado", 
           xlab = "Tiempo", ylab = "Riesgo ", legend.title = "Estimación", 
           legend.labs = "Kaplan-Meier")

A continuación comenzamos a analizar la supervivencia de nuestros usuarios con base en diversos factores que los afectan y que nos muestran como es su relación con el banco. Además de los tiempos más críticos en los que los clientes dejan al banco. Como primer caso veremos la curva de supervivencia y la de riesgo de los clientes que tienen tarjeta de credito contra los que no, aunado a esto se le aplicara la prueba log-rank a estas curvas para ver sí sus modelos son realmente diferentes, es decir, sì existe una diferencia significativa para nosotros entre la superviviencia de los clientes que tienen targeta de crédito y los que no la tienen.

ggsurvplot(fit = cred.km, data = banca, conf.int = T, title = "Curva de Supervivencia tarjeta de cŕedito", 
           xlab = "Tiempo", ylab = "Probabilidad de supervivencia", legend.title = "Estimación", 
           legend.labs = c("Con Tarjeta","Sin Tarjeta"), pval = T, pval.method = T )

#Riesgo
ggsurvplot(fit = cred.km, data = banca, conf.int = T, fun = 'cumhaz', title = "Curva de Supervivencia tarjeta de cŕedito", 
           xlab = "Tiempo", ylab = "Probabilidad de supervivencia", legend.title = "Estimación", 
           legend.labs = c("Con Tarjeta","Sin Tarjeta"), pval = T, pval.method = T )

Como se puede apreciar en ambas gŕaficas, aproximadamente en el mes 8 existe un decenso considerable de clientes que sí utilizan tarjeta de cŕedito. Siendo que este es un producto que le reditua económicamente al banco y que sus ingresos son muy importantes como para quitarlo de los productos. Consideramos que es importante revisar las políticas que se aplican con los clientes y que es lo que los está disgustando tanto, más allá de las opciones triviales.

El pi-value que nos arroja es de .0001. Estadísticamente hablando esto nos dice que los modelos son distintos. Por lo que podemos asumir que la tarjeta de crédito es un buen factor a considerar.

Nuestro siguiente análisis se enfoca en un área muy importante y que a día de hoy está teniendo un gran crecimiento. Hablamos del uso de los productos del banco y como afecta la superviviencia de los usuarios. Usuarios que utilizan uno sólo vs usuarios que utlizan más productos

#supervivencia
ggsurvplot(fit = product.km, data = banca, conf.int = T, title = "Curva de Supervivencia uso de productos", 
           xlab = "Tiempo", ylab = "Riesgo", legend.title = "Estimación", 
           legend.labs = c("un producto","+ productos"), pval = T, pval.method = T )

#Riesgo
ggsurvplot(fit = product.km, data = banca, conf.int = T, fun = 'cumhaz', title = "Curva de riesgo uso de productos", 
           xlab = "Tiempo", ylab = "Riesgo", legend.title = "Estimación", 
           legend.labs = c("un producto","+ productos"), pval = T, pval.method = T)

Como se puede ver en las gŕaficas existe una gran diferencia entre las superviviencia de los clientes que utilizan un sólo producto del banco y los que utilizan más. Es importante recalcar que los usuarios que utlizan un sólo producto son un poco más del 50% de los clientes que tiene el banco. Por lo que exortamos al banco a invertir más capital en la generación de productos y hacerlos más atractivos para los clientes, ya que el uso de más de un producto además de que seguramente mejora la experiencia de los usuarios, parece aumentar la fidelidad de los mismos hacia el banco. Para que esto no se quede en algo simplemente visual. Le aplicamos la prueba log-rank a nuestros modelos. El resultado que se obtuvo en dicha prueba nos dice que este parametro efectivamente es importante en la supervivencia de los clientes.

Puede que el siguiente caso no sea de lo más común o intuitivo pero es importante analizar todas las variables que nos ofrece nuestra base para poder determinar realmente donde se encuentran nuestras fallas. En este caso se analiza la supervivencia de los usuarios que tienen sueldo estimado por debajo y por encima de la media de sueldos de nuestros clientes.

ggsurvplot(fit = tsal.km, data = banca, conf.int = T, title = "Curva de Supervivencia dependiendo del salario", 
           xlab = "Tiempo", ylab = "Riesgo", legend.title = "Estimación", 
           legend.labs = c("salario menor a la media","salario mayor a la media"), pval = T, pval.method = T )

#Riesgo
ggsurvplot(fit = tsal.km, data = banca, conf.int = T, fun = 'cumhaz', title = "Curva de riesgo dependiendo del salario", 
           xlab = "Tiempo", ylab = "Riesgo", legend.title = "Estimación", 
           legend.labs = c("salario menor a la media","salario mayor a la media"), pval = T, pval.method = T )

Se puede apreciar que al paso de los meses comienza a haber diferencias entre la suprviviencia de los clientes con más dinero con respecto a los que menos. Sería importante investigar que les está ofreciendo la competencia pues son los clientes con más dinero por lo tanto aportan más al capital de los bancos. Aun que nuestra prueba log-rank sigue siendo aceptada como que hay diferencia entre las supervivencias de nuestras dos clases de clientes es en menor medida que las dos pruebas anteriores.

ggsurvplot(fit = tsal.km, data = banca, conf.int = T, title = "Curva de Supervivencia dependiendo del salario", 
           xlab = "Tiempo", ylab = "Riesgo", legend.title = "Estimación", 
           legend.labs = c("salario menor a la media","salario mayor a la media"), pval = T, pval.method = T )

#Riesgo
ggsurvplot(fit = tsal.km, data = banca, conf.int = T, fun = 'cumhaz', title = "Curva de riesgo dependiendo del salario", 
           xlab = "Tiempo", ylab = "Riesgo", legend.title = "Estimación", 
           legend.labs = c("salario menor a la media","salario mayor a la media"), pval = T, pval.method = T )

En el siguiente caso analizaremos las edades de los clientes, los menores de 35 frente a los mayores. Esto es muy importante pues puede dar una buena pista de los grupos de edades que se deben atacar.

#supervivencia
ggsurvplot(fit = nedad.km, data = banca, conf.int = T, title = "Curva de Supervivencia dependiendo de la edad", 
           xlab = "Tiempo", ylab = "Riesgo", legend.title = "Estimación", 
           legend.labs = c("menor de 35","mayor de 35"), pval = T, pval.method = T )

#Riesgo
ggsurvplot(fit = nedad.km, data = banca, conf.int = T, fun = 'cumhaz', title = "Curva de riesgo dependiendo de la edad", 
           xlab = "Tiempo", ylab = "Riesgo", legend.title = "Estimación", 
           legend.labs = c("menor de 35","mayor de 35"), pval = T, pval.method = T )

Como se puede aprecier tanto visualmente como la prueba log-rank nos muestran que es una variable muy importante a considerar en la supervivencia de los clientes. Al ver que los clientes menores a 35 años suelen ser más fieles al banco o al menos tienen menor riesgo de irse podemos hacer la recomendación de atacar ese sector con más fuerza aun que por otro lado sería bueno revisar por que los clientes mayores a 35 años están teniendo tanto riesgo.

La siguiente fase de nuestro análisis viene con las estimaciones de riesgos proporcionales es decir la prueba de cox Donde podremos ver que tan significativos son nuestros modelos para la estimación de la supervivencia de nuestros clientes Y así saber que variables deberíamos ponerles más atención

Lo primero que analizaremos es el comportamiento que se da en los distintos países y sus significancia para modelar la supervivencia.

coxph(Surv(time, exited) ~ banca$Geography, data = banca)
## Call:
## coxph(formula = Surv(time, exited) ~ banca$Geography, data = banca)
## 
##                           coef exp(coef) se(coef)      z      p
## banca$GeographyGermany 0.70876   2.03147  0.01570 45.157 <2e-16
## banca$GeographySpain   0.03120   1.03170  0.01912  1.632  0.103
## 
## Likelihood ratio test=2238  on 2 df, p=< 2.2e-16
## n= 100000, number of events= 20370

Podemos ver que si comparamos a los usuarios de Alemania contra los de los otros dos países si cambian significativamente sus supervivencias, sin embargo entre España y Francia no hay una diferencia real entre los modelos que se generan. Por lo que se debe separar en esos dos sectores para hacer un análisis de su supervivencia y de acciones a tomar.

Ahora analizaremos las variables edad, salario, género y ubicación

coxph(Surv(time, exited) ~ banca$Age + banca$EstimatedSalary + banca$Gender + banca$Geography, data = banca)
## Call:
## coxph(formula = Surv(time, exited) ~ banca$Age + banca$EstimatedSalary + 
##     banca$Gender + banca$Geography, data = banca)
## 
##                              coef  exp(coef)   se(coef)       z      p
## banca$Age               4.189e-02  1.043e+00  5.291e-04  79.177 <2e-16
## banca$EstimatedSalary   1.646e-07  1.000e+00  1.217e-07   1.353 0.1761
## banca$GenderMale       -4.053e-01  6.668e-01  1.413e-02 -28.693 <2e-16
## banca$GeographyGermany  6.510e-01  1.917e+00  1.571e-02  41.434 <2e-16
## banca$GeographySpain    3.469e-02  1.035e+00  1.912e-02   1.814 0.0697
## 
## Likelihood ratio test=8558  on 5 df, p=< 2.2e-16
## n= 100000, number of events= 20370

Aquí notamos que al considerar todas estas variables tanto España como el salario no son significativos para nuestro modelo. Es decir que no expican de la mejor manera la sobrevivencia de nuestros sujetos.

Un caso que nos parecio importante analizar es la significancia de la edad con los productos

coxph(Surv(time, exited) ~ banca$producto + banca$Age + banca$Age:banca$producto, data = banca)
## Call:
## coxph(formula = Surv(time, exited) ~ banca$producto + banca$Age + 
##     banca$Age:banca$producto, data = banca)
## 
##                                          coef  exp(coef)   se(coef)
## banca$producto+productos           -1.1513059  0.3162236  0.0522472
## banca$Age                           0.0379517  1.0386811  0.0006461
## banca$producto+productos:banca$Age  0.0092599  1.0093029  0.0011172
##                                          z      p
## banca$producto+productos           -22.036 <2e-16
## banca$Age                           58.737 <2e-16
## banca$producto+productos:banca$Age   8.288 <2e-16
## 
## Likelihood ratio test=8380  on 3 df, p=< 2.2e-16
## n= 100000, number of events= 20370

La prueba nos arroja p values muy pequeños lo que nos indica que son muy significativos para modelar la supervivencia de nuestros usuarios y son varaibles que se deberán tomar muy encuenta a la hora de atacar los problemas

Por ultimo decidimos analizar el genero la edad y la interacción entre ambas variables

coxph(Surv(time, exited) ~ banca$Gender + banca$Age + banca$Gender:banca$Age, data = banca)
## Call:
## coxph(formula = Surv(time, exited) ~ banca$Gender + banca$Age + 
##     banca$Gender:banca$Age, data = banca)
## 
##                                  coef  exp(coef)   se(coef)       z
## banca$GenderMale           -0.5942971  0.5519504  0.0491766 -12.085
## banca$Age                   0.0407662  1.0416085  0.0007064  57.709
## banca$GenderMale:banca$Age  0.0038362  1.0038436  0.0010503   3.653
##                                  p
## banca$GenderMale           < 2e-16
## banca$Age                  < 2e-16
## banca$GenderMale:banca$Age 0.00026
## 
## Likelihood ratio test=6679  on 3 df, p=< 2.2e-16
## n= 100000, number of events= 20370

Vemos que aunque los tres p values estadísticamente hablando nos dicen que nuestros modemlos para predecir son significativos e incluso su interacción lo es aunque en menor medida.

En conclusión tenemos información para poder atacar los problemas y comenzar a solucionar los problemas de perdida de clienets . Por un ladonos dimos cuenta que los productos y la edad son muy significativos a la hr de predecir la superviviencia ademàs de que pueden afectar positivamente la misma por lo que se sabe a qeu grupos se debe atacar y que se debe comenzar a invertir tanto en el mejoramiento de los productos así como en su difusión.