Para complementar los resultados obtenidos en el hito anterior, se decide utilizar reglas de asociación con el fin de detectar si existen patrones de fuga, es decir, si clientes que tienen un conjunto de atributos similares, son más propensos a irse de la compañía. Además, las reglas también permiten identificar los factores más relevantes que propician la fuga de los clientes. Cómo se descubrió en el Hito 1, el servicio de internet o los servicios asociados a él presentan alguna tendencia hacia la fuga, por lo que resulta interesante determinar las reglas de asociación segmentando por clientes que tienen servicio de internet y los que solo poseen servicio telefónico. Esto se ve reflejado al momento de encontrar reglas considerando el dataset completo, ya que las principales reglas incorporan variables asociadas con tener el servicio de internet, por lo que segmentando, se puede tener información más útil respecto a ambos tipos de clientes.
De los modelos de clasificación obtenidos en el Hito 2, el algoritmo que entregó mejores resultados corresponde al Random Forest, dado lo anterior, se decidió ver cuáles variables son las más relevantes según este algoritmo para tomar la decisión, lo cual se puede observar al obtener el valor de la varianza explicada para cada variable, por lo que se agregó esta parte al Hito 2 donde se muestra una tabla con los resultados.
Otro objetivo que presentan el análisis de las reglas de asociación es determinar si las variables entregadas por las reglas de asociación son las mismas variables obtenidas mediante el Random Forest, con el fin de detectar el grado de similitud entre ambos métodos.
Para trabajar con reglas de asociación es necesario pasar el dataset a formato de transacción, y para esto, las variables deben estar en clase factor. Lo anterior, genera problemas con respecto a las variables tiempo en la compañía y monto de pago mensual, ya que al ser valores muy distintos entre sí, las reglas no incorporarán dichas variables, sin embargo, tal como se descubrió en el Hito 2, el monto mensual de pago y el tiempo en la compañía son variables relevantes a la hora de explicar la fuga, por lo que se decidió incorporar ambas creando una variable nueva para cada una que indique a qué cuartil pertenecen cada dato, cuyos valores posibles son 1 (bajo), 2 (media-bajo), 3 (medio-alto) o 4 (alto).
#Clientes internet
library("arules")
con_internet=datos[datos$InternetService!="No",]
customer_con_internet= as(con_internet, "transactions")
Para comenzar es importante recordar las variables más importantes encontradas por el mejor clasificador (random forest), los cuales son:
1.tenure
2.MonthlyCharges
3.Contract Month-to-month
4.InternetService FiberOptic
5.TechSupport: No
6.PaymentMethod_Electronic_check
7.OnlineSecurity_No
8.Contract_Two_year
9.SeniorCitizen
10.gender_Female
Se realizaron dos experimentos, el primero consiste en buscar reglas de asociación para el grupo de personas sin Internet, buscando reglas que den como objetivo la característica “Churn” igual a “Yes”, es decir, determinar reglas para las personas que se van de la compañía. Las reglas encontradas tienen muchas variables en común, en donde las que más se repiten y, por ende, las más relevantes son género femenino, multilíneas (sin servicio multilínea), contrato mensual, facturación sin papel (PaperlessBilling), tiempo en la compañía asociado al cuartil 1 (tenure) y monto de pago mensual bajo (MonthlyCharges).
rules2.sub <- subset(rules2, subset = rhs %in% "Churn=Yes")
rules2.sorted_churn <- sort(rules2.sub, by="lift")
rules2.sorted.first5_churn <- head(rules2.sorted_churn, 5)
inspect(rules2.sorted.first5_churn)
## lhs rhs support confidence lift count
## [1] {gender=Female,
## MultipleLines=No,
## Contract=Month-to-month,
## PaperlessBilling=Yes,
## quartile_tenure=1} => {Churn=Yes} 0.010485 0.39024 5.2700 16
## [2] {gender=Female,
## PhoneService=Yes,
## MultipleLines=No,
## Contract=Month-to-month,
## PaperlessBilling=Yes,
## quartile_tenure=1} => {Churn=Yes} 0.010485 0.39024 5.2700 16
## [3] {gender=Female,
## MultipleLines=No,
## Contract=Month-to-month,
## PaperlessBilling=Yes,
## quartile_tenure=1,
## quartile_monthly=1} => {Churn=Yes} 0.010485 0.39024 5.2700 16
## [4] {gender=Female,
## PhoneService=Yes,
## MultipleLines=No,
## Contract=Month-to-month,
## PaperlessBilling=Yes,
## quartile_tenure=1,
## quartile_monthly=1} => {Churn=Yes} 0.010485 0.39024 5.2700 16
## [5] {gender=Female,
## MultipleLines=No,
## PaperlessBilling=Yes,
## quartile_tenure=1} => {Churn=Yes} 0.011140 0.36170 4.8846 17
Es importante destacar que la cantidad de datos utilizados para este grupo es considerablemente menor a la original, cercana a los 2.000. Además, también resulta relevante mencionar que el support mínimo utilizado es de 0.01, debido principalmente a que al aumentarlo a un valor mayor, por ejemplo 0.04, el algoritmo no entrega resultados. El confidence de la regla es 0.39 y posee un lift de 5.27, es decir, hay un efecto positivo importante de las variables obtenidas en la regla que se correlaciona con la fuga.
El segundo experimento consiste en buscar reglas de asociación de las personas que tienen internet, incorporando los servicios que son complementarios a éste, como la seguridad online (OnlineSecurity), soporte técnico (TechSupport), entre otros. De las reglas obtenidas se puede apreciar que las variables que componen la regla son Internet de fibra óptica, Seguridad en línea (OnlineSecurity), soporte técnico (TechSupport), contrato mensual, pago con cheque electrónico, partner (clientes que no lo son) y tiempo en la compañía bajo (cuartil 1). En este caso se utilizó un support mínimo de 0.04, ya que, al contar con mayor número de datos y un mayor porcentaje de personas que se iban de la compañía, estas reglas se repetían con mayor frecuencia.
Los resultados del segundo experimento muestran un confidence bastante alto (0.8) en comparación al primero, pero la medida del lift baja a 2.5, sin embargo, sigue habiendo un efecto positivo dado que el coeficiente es mayor a 1.
rules.sub <- subset(rules, subset = rhs %in% "Churn=Yes")
rules.sorted_churn <- sort(rules.sub, by="lift")
rules.sorted.first5_churn <- head(rules.sorted_churn, 5)
inspect(rules.sorted.first5_churn)
## lhs rhs support confidence lift count
## [1] {Partner=No,
## InternetService=Fiber optic,
## OnlineSecurity=No,
## TechSupport=No,
## PaperlessBilling=Yes,
## PaymentMethod=Electronic check,
## quartile_tenure=1} => {Churn=Yes} 0.040421 0.80505 2.5293 223
## [2] {Partner=No,
## InternetService=Fiber optic,
## OnlineSecurity=No,
## TechSupport=No,
## Contract=Month-to-month,
## PaperlessBilling=Yes,
## PaymentMethod=Electronic check,
## quartile_tenure=1} => {Churn=Yes} 0.040421 0.80505 2.5293 223
## [3] {Partner=No,
## PhoneService=Yes,
## InternetService=Fiber optic,
## OnlineSecurity=No,
## TechSupport=No,
## PaperlessBilling=Yes,
## PaymentMethod=Electronic check,
## quartile_tenure=1} => {Churn=Yes} 0.040421 0.80505 2.5293 223
## [4] {Partner=No,
## PhoneService=Yes,
## InternetService=Fiber optic,
## OnlineSecurity=No,
## TechSupport=No,
## Contract=Month-to-month,
## PaperlessBilling=Yes,
## PaymentMethod=Electronic check,
## quartile_tenure=1} => {Churn=Yes} 0.040421 0.80505 2.5293 223
## [5] {Partner=No,
## InternetService=Fiber optic,
## OnlineSecurity=No,
## OnlineBackup=No,
## TechSupport=No,
## PaymentMethod=Electronic check,
## quartile_tenure=1} => {Churn=Yes} 0.042414 0.80137 2.5177 234
A partir del Hito 3, comparando los resultados obtenidos a partir del Random Forest y reglas de asociación para determinar las variables más relevantes en la fuga de clientes, se puede ver que hay variables que se repiten en todos los casos, como lo son el tiempo en la compañía y el contrato mes a mes (Contract Month-to-month). En los clientes sin Internet además se repiten las variables pago mensual (MonthlyCharges) y el género femenino. Por otro lado, para los clientes con internet, las variables que se repiten con las del random forest son internet de fibra óptica, sin servicio técnico (TechSupport=No), método de pago mediante cheque electrónico (PaymentMethod=Electronic_check) y sin seguridad online (OnlineSecurity=No), las cuales están relacionadas mayormente con los servicios de internet.
Finalmente, tras el trabajo realizado, se obtiene un buen clasificador (random forest) para predecir la fuga de clientes de una empresa de telecomunicaciones, con métricas sobre 0.9. Lo anterior gracias a la utilización de oversampling para solucionar el desbalanceo de clases existentes en el dataset original. Además, resulta útil poder determinar las variables que el clasificador considera más relevante para interpretar de mejorar manera como el algoritmo está tomando la decisión. Comparar este con otros métodos (en este caso, reglas de asociación) permite tener una mayor certeza de cuales son efectivamente las variables más relevantes para el problema en estudio.
Uno de los objetivos del trabajo, consistía en analizar las variables más relevantes que explican la fuga con el fin de entregar recomendaciones a la empresa para mejorar su servicio y disminuir la tasa de deserción de sus clientes, bajo el análisis anterior se recomienda lo siguiente:
A nivel general: Se evidencia a las variables contrato mensual y pago con cheque electrónico como las más relevantes al momento de irse de la compañía, por lo que una alternativa para la TELCO puede ser ofrecer incentivos para que los clientes firmen un contrato de largo plazo, como por ejemplo, ofreciendo un equipo a costo cero pagando un plan “x” por 1 año o que el pago de los primeros 3 meses sea gratis si se contrata un plan anual. Por otro lado, evitar el método de pago a través de cheque electrónico, dando facilidades de pago con los otros métodos, como cuotas sin interés por ejemplo.
Clientes con internet y servicio telefónico: como se tiene que el servicio de Internet por fibra óptica aumenta la posibilidad de fuga, se podría analizar este servicio para ver cuales son las fallas recurrentes que presenta y así mejorarlo, además, al momento de que alguien lo solicite contratar este servicio, ofrecer un pack atractivo para el cliente que incluya el servicio de soporte técnico y seguridad online, ya que cuando no se tiene estos, aumentan las chances de fuga. El paquete debe ser atractivo para el cliente desde un punto de vista económico.
Clientes con servicio telefónico: A diferencia de lo encontrado en los análisis anteriores, se evidencia una propensión mayor del género femenino a fugarse, por lo que la empresa lo debe tener en consideración para ofrecer principalmente un buen servicio de atención al cliente.