1. Motivación

Las compañías de telecomunicaciones buscan constantemente atraer nuevos clientes y, más importante aún, evitar que los actuales emigren a otra compañía pese a las tentadoras ofertas de la competencia. Esto se debe a que para las compañías de telecomunicaciones la retención de clientes, es mucho más fácil, en términos operacionales y económicos, que captar nuevos consumidores. La principal causa de esto es que el gasto en publicidad es sumamente cuantioso debido a la fuerte competencia existente en el mercado.

Se trabajará con los datos de una empresa de telecomunicaciones obtenidas de la página Kaggle (Base de Datos Kaggle), en ella, no se detalla a que empresa pertenecen los datos, sin embargo, en un proyecto donde se trabaja con la misma base de datos (Proyecto con el mismo dataset) se señala que estos pertenecen a una muestra de clientes de IBM. El dataset cuenta con información de clientes actuales y otros que ya se han ido de la compañía. El objetivo de la investigación es predecir si un determinado cliente migrará de compañía o permanecerá en ella, junto con determinar cuales son las variables más relevantes que influyen en la toma de dicha decisión.

El estudio resulta de gran interés para la compañía, ya que, se pueden tomar medidas para evitar una posible fuga, por ejemplo, mejorando la velocidad de su internet, ofreciendo un descuento del servicio entregado o cualquier otra acción que mejore el servicio al cliente, de tal manera que este se mantenga en la compañía. De esta forma, la empresa puede aumentar el valor que le genera cada cliente en el tiempo a un menor costo. Una buena forma de medir lo anterior es a través del Customer Lifetime Value (CLV).

2. Problemática Central

La problemática central a analizar es predecir si un cliente se irá de la compañía o no, identificando cuales son los criterios más relevantes que llevan a la toma de esta decisión, de tal manera que la compañía de telecomunicaciones puede anticiparse a estas posibles fugas y tomar decisiones que le permitan evitar la pérdida del cliente en base al servicio contratado y a las características propias del cliente (marketing directo).

Previo a realizar algún análisis, se tienen las siguientes preguntas de investigación

2.1 Análisis inicial

De manera preliminar, se comenzará con una análisis exploratorio de datos con el objetivo de encontrar outliers y posibles datos no existentes que puedan entorpecer el análisis, luego se procederá a estudiar las variables existentes en el dataset con respecto a la variable de interés que es “Fuga” (Churn), esta variable indica si el cliente se ha ido de la compañía (“Yes”) o aun sigue en ella (“No”). Lo anterior se hará con el objetivo de obtener ideas preliminares(insights) para posteriores análisis conjuntos. Por último, y dado los insights encontrados, se procederá a realizar distintos modelos de clasificación que incorporen las variables más relevantes que explican la fuga de clientes, tales como árboles de clasificación, random forest, knn, logit, entre otros.

2.2 Formas preliminares de hacer el análisis

Se puede realizar utilizando alguna herramienta estadística como R con su interfaz RStudio, manipulando los datos de manera de encontrar relaciones entre los atributos del dataset y la variable de interés, de esta forma, se podría ver cuales atributos son más importantes a la hora de tomar la decisión de cambiarse de compañía, viendo los rasgos que se repiten más entre los clientes que abandonan la empresa. Este análisis se puede llevar a cabo entre los distintos atributos o dentro de un solo atributo, viendo cual es el caso que más influye en la decisión.

3. Descripción de los datos

3.1 Explicación de la base de datos

La base de datos cuenta con 21 columnas y 7043 filas, donde cada fila representa un cliente en particular, las columnas incluyen información propia de cada cliente como un ID, género (“Female” o “Male”) y si el cliente se encuentra jubilado o no, indicando 1 en caso que lo esté y 0 si no en la variable “SeniorCitizen”. También contiene información de los servicios contratados por el cliente, tales como servicio telefónico, si tiene más de una línea telefónica o no, y si posee internet (y que tipo en caso de poseer, DSL o fibra óptica), a continuación, se describen servicios adicionales que se pueden contratar en caso de haber contratado internet, como por ejemplo, servicios de streaming de TV, streaming de películas, apoyo técnico, protección del dispositivo, seguridad en línea o copia de seguridad en línea. Cada servicio representa una columna del dataset, para todos estos, salvo el servicio de internet, las opciones de respuesta son “Yes”, en caso de tener el servicio, y “No” en caso contrario.

Adicionalmente, se tiene registro del método de pago utilizado, el monto mensual cancelado, la cantidad de tiempo (medida en meses) que el cliente lleva activo en la compañía y el monto total que ha cancelado, se detalla el tipo de contrato que tiene el cliente, que puede ser mensual, anual o bianual y si se le entrega la cuenta mediante papel o no (“PaperlessBilling”). Finalmente, se tienen dos variables Partner y Dependents, las cuales indican respectivamente si la persona está asociado a la compañía y si posee cargas, es decir, si le paga el servicio a otra persona.

Es importante mencionar que la mayoría de las columnas se encuentran como string, por lo que se convirtieron en binarias para poder trabajar con ellas de manera gráfica.

3.2 Análisis exploratorio

3.2.1 Missing value y exploración de variables

Previo a comenzar a hacer el análisis, se detectaron que variables presentan missing values, los cuales solo se encuentran en la variable TotalCharges, correspondiendo a 11 clientes en total, a priori, se pensó en eliminar estos datos, sin embargo, al realizar la matriz de correlación entre las variables, se encontró una alta correlación entre tenure (meses que el cliente lleva en la compañía) y TotalCharges (corr=0.83), por lo que se decidió eliminar la variable TotalCharges para posteriores análisis. Además tampoco se utilizó la variable ID cliente ya que es un número único para cada uno y al desconocer como se creó este código carece de interpretación.

dato=na.omit(datos) #Para poder calcular la correlacion
cor(dato$TotalCharges, dato$tenure)
## [1] 0.82588

En primer lugar se quiso estudiar las características de los clientes, según el género, tipo de ciudadano (citizen), si es partner o no y si los clientes tienen servicio telefónico. A partir de los gráficos se puede evidenciar que en cuanto a género y partner, los clientes están casi en igual proporción, con respecto al tipo de ciudadano, la mayoría son no jubilados y gran parte de los clientes si cuentan con servicio telefónico.

library(plotrix)

generos=table(datos$gender)
Gender=c("Male","Female")
genero=data.frame(Gender,generos)
ch1<- ggplot(genero, aes(x="", y=Freq, fill=Gender))+
  geom_bar(width = 1, stat = "identity")+
  coord_polar("y", start=0)+
  ggtitle("Number of women vs men")+xlab("")+ylab("")

multiplot(ch1, ch3, ch5, ch2, cols=2) 

3.2.2 Proporción de fuga según variables

Se analizó la probabilidad de fuga según una característica en particular. Por ejemplo, ver la tasa de fuga según si el cliente es Partner o no, para ello, se contó la cantidad de clientes que son Partner y cuantos de ellos se han fugado, obteniendo la proporción de fuga, análogamente se hizo lo mismo para los que no son Partner. De los gráficos se puede apreciar que la probabilidad de fuga para los clientes jubilados es mayor con respecto a los no jubilados. Por otro lado, los clientes que son Partner tienen una menor probabilidad de cambiarse de compañía, lo que podría deberse a que confian más en la empresa. Además, si la facturación se realiza sin papel de por medio la tasa de fuga es mayor y para los clientes que son dependientes, es menos probable que se vayan.

multiplot(s1,s2,s3,s4,cols=2)

3.2.1 Proporción de fuga según tipo de contrato y tiempo en la compañía

Al analizar la probabilidad de fuga según el tipo de contrato se aprecia que los clientes que tienen un contrato mensual son más propensos a abandonar la empresa, por el contrario, mientras el contrato sea a más largo plazo, la posibilidad de abandono es muy bajo. Para ver la tasa de fuga según el tiempo que llevan los clientes en la compañía, se dividió éste en deciles, y para cada uno se contó la cantidad total de clientes que hay y los que se fueron. En el gráfico es claro ver que a menor tiempo que llevan en la compañía, más probables es que la abandonen.

multiplot(g2,g1,cols=2)

3.2.3 Tasa de fuga según cantidad de servicios contratados

Se estudió como varía la tasa de fuga según cuantos servicios tiene contratado el cliente, para ello, se transformó cada uno de los servicios en variables binarias. Del gráfico se aprecia que la probabilidad de fuga es mayor si los clientes tiene entre 2 y 4 servicios (siendo 3 la cantidad de servicios donde se alcanza la mayor probabilidad). Los clientes con un solo servicio o con más de 6, tienen baja propensión a emigrar.

multiplot(t1, u1, cols=2)

Del gráfico de densidad se puede ver que si bien hay una gran proporción de clientes que tiene un solo servicio (~ 0.2), la mayoría de los clientes tienen entre 2 y 6 servicios, justamente donde se tiene mayor chance de dejar la empresa de telecomunicaciones.

3.2.4 Análisis de servicios

Finalmente, se quiso analizar como afectan los distintos servicios en la tasa de fuga. Para ello, se estudió la tasa de fuga en función de la población total y también la tasa de fuga escalada al tamaño de la población que tiene cada servicio entregado. Por ejemplo, si analizamos el total de fugas con respecto al servico telefónico, se evidencia que el 90% del total de clientes que se fugan tienen contratado este servicio, sin embargo, la cantidad de personas que tienen y no tienen este servicio contratado está muy desbalanceada, al comparar dentro de cada grupo la tasa de fuga es muy similar entre ellas (alrededor del 25%). Por lo anterior, hay que ser cuidadoso con obtener conclusiones apresuradas midiendo la cantidad de fugas totales en función de una característica. Con respecto al servicio de internet, se puede apreciar que la proporción de fuga para la gente que tiene el servicio es mayor vs la que no tiene, que son los clientes que solamente tienen servicio telefónico, lo anterior podría explicarse porque los clientes están más satisfechos con la calidad de este último servicio en comparación al servicio de internet. Finalmente, la gente que tiene streaming de películas tiene mayor propensión a irse vs los que no tienen, esto podría deberse a que el servicio de streaming es deficiente.

ddata1= aggregate(datos$Churn~ datos$PhoneService, FUN=sum)
colnames(ddata1)[1]="PhoneService"
total1= count(datos$PhoneService)
colnames(total1)[1]="PhoneService"
final1= merge(ddata1, total1, by="PhoneService")
fuga_1= final1$`datos$Churn`/final1$freq
fuga_2=final1$`datos$Churn`/sum(datos$Churn)

final1[1,1]= "No"
final1[2,1]= "Yes"

final1=data.frame(final1,fuga_1,fuga_2)
multiplot(pservice_2, internet2, streaming2, cols=3)

multiplot(pservice_1, internet1, streaming1, cols=3)