Telco=read.table("Telco.csv", header=TRUE, sep=",",dec=".", row.names = 1, stringsAsFactors = TRUE)
summary(Telco)
## gender SeniorCitizen Partner Dependents tenure
## Female:3488 Min. :0.0000 No :3641 No :4933 Min. : 0.00
## Male :3555 1st Qu.:0.0000 Yes:3402 Yes:2110 1st Qu.: 9.00
## Median :0.0000 Median :29.00
## Mean :0.1621 Mean :32.37
## 3rd Qu.:0.0000 3rd Qu.:55.00
## Max. :1.0000 Max. :72.00
##
## PhoneService MultipleLines InternetService
## No : 682 No :3390 DSL :2421
## Yes:6361 No phone service: 682 Fiber optic:3096
## Yes :2971 No :1526
##
##
##
##
## OnlineSecurity OnlineBackup
## No :3498 No :3088
## No internet service:1526 No internet service:1526
## Yes :2019 Yes :2429
##
##
##
##
## DeviceProtection TechSupport
## No :3095 No :3473
## No internet service:1526 No internet service:1526
## Yes :2422 Yes :2044
##
##
##
##
## StreamingTV StreamingMovies Contract
## No :2810 No :2785 Month-to-month:3875
## No internet service:1526 No internet service:1526 One year :1473
## Yes :2707 Yes :2732 Two year :1695
##
##
##
##
## PaperlessBilling PaymentMethod MonthlyCharges
## No :2872 Bank transfer (automatic):1544 Min. : 18.25
## Yes:4171 Credit card (automatic) :1522 1st Qu.: 35.50
## Electronic check :2365 Median : 70.35
## Mailed check :1612 Mean : 64.76
## 3rd Qu.: 89.85
## Max. :118.75
##
## TotalCharges Churn
## Min. : 18.8 No :5174
## 1st Qu.: 401.4 Yes:1869
## Median :1397.5
## Mean :2283.3
## 3rd Qu.:3794.7
## Max. :8684.8
## NA's :11
El análisis descriptivo del conjunto de datos sobre fuga de clientes en una compañía telefónica revela patrones relevantes para la retención.
La distribución por género es equilibrada. Solo el 16.2 % son adultos mayores, y la mayoría no tiene dependientes, lo que podría asociarse con mayor movilidad y menor fidelidad. El tiempo promedio de permanencia es de 32.37 meses, pero el 25 % de los clientes tienen menos de 9 meses con la compañía, lo que indica que la fuga ocurre principalmente en etapas tempranas.
En cuanto a servicios, el 90 % tiene servicio telefónico y la mayoría usa fibra óptica. Sin embargo, los servicios adicionales como seguridad, respaldo y soporte técnico tienen baja adopción, lo que sugiere oportunidades de mejora en comunicación y valor percibido.
El 60 % de los clientes están en contratos mensuales, lo que facilita la cancelación. Los contratos de uno o dos años presentan menor fuga, por lo que se recomienda incentivar compromisos a largo plazo. La facturación electrónica y los pagos automáticos están presentes en más de la mitad de los casos, lo que podría correlacionarse con mayor retención.
El cargo mensual promedio es de $64.76, y los clientes con cargos más altos podrían ser más exigentes. La tasa de fuga es del 26.5 %, lo que representa un desafío importante.
Lo que nos dicen las estadisticas entonces es que se deberia o se podrían enfocar estrategias en los primeros meses del cliente, promover contratos largos, mejorar la adopción de servicios complementarios y facilitar pagos automáticos para reducir la fuga.
library(corrplot)
## corrplot 0.95 loaded
attach(Telco)
datos= data.frame(tenure,MonthlyCharges, TotalCharges)
r =cor(na.omit(datos))
corrplot(r, method="number")
tenure y TotalCharges (correlación: 0.83) Esta es la relación más fuerte del conjunto. Tiene sentido, ya que cuanto más tiempo permanece un cliente en la compañía, mayor será el total acumulado que ha pagado. Esta correlación alta sugiere que la antigüedad es un buen predictor del cargo total.
MonthlyCharges y TotalCharges (correlación: 0.65) Existe una correlación moderada entre el cargo mensual y el total acumulado. Esto indica que los clientes con cargos mensuales más altos tienden a acumular mayores cargos totales, aunque esta relación también depende del tiempo que hayan permanecido en la compañía.
tenure y MonthlyCharges (correlación: 0.25) Esta es la relación más débil. Sugiere que no hay una fuerte conexión entre cuánto tiempo lleva un cliente y cuánto paga mensualmente. Es posible que los cargos mensuales estén más relacionados con el tipo de servicios contratados que con la antigüedad.
library(ggplot2)
ggplot(data = Telco, aes(x = Churn, y = MonthlyCharges, fill = Churn)) +
geom_boxplot() +
scale_fill_manual(values = c("Yes" = "orange", "No" = "skyblue")) +
labs(
title = "Diagrama de Cajas: Cargos Mensuales vs Rotación",
x = "Rotación (Churn)",
y = "Cargos Mensuales (MonthlyCharges)"
) +
theme_minimal()
Los clientes con cargos mensuales más altos tienen mayor probabilidad de presentar rotación (Churn =Si), mientras que los que permanecen suelen pagar cargos más bajos o moderados.
Los clientes con cargos mensuales más altos tienden a abandonar el servicio con mayor frecuencia (rotación), posiblemente porque sus expectativas sobre calidad y beneficios no se ven satisfechas o proque siemplemente el servicio se les hace muy caro. En cambio, quienes pagan montos bajos o moderados suelen permanecer más tiempo, esto puede ser debido a que perciben mayor equilibrio entre costo y valor recibido. Esto sugiere que la compañía debe enfocar esfuerzos en mejorar la experiencia de los clientes que pagan más plata
library(ggplot2)
ggplot(data = Telco, aes(x = Churn, y = TotalCharges, fill = Churn)) +
geom_boxplot() +
scale_fill_manual(values = c("Yes" = "gray", "No" = "cyan")) +
labs(
title = "Diagrama de Cajas: Total Charges vs Rotación",
x = "Rotación (Churn)",
y = "Cargos Totales (TotalCharges)"
) +
theme_minimal()
En el diagrama de cajas se ve que los clientes que no se dieron de baja (Churn = No) tienen en general cargos totales más altos, mientras que los que sí se dieron de baja (Churn = Yes) tienen valores más bajos. Esto muestra que muchos clientes que abandonan la compañía lo hacen después de poco tiempo y por eso no alcanzan a acumular tantos cargos.
library(ggplot2)
ggplot(data = Telco, aes(x = Churn, fill = gender)) +
geom_bar(position = "fill") +
labs(
title = "Proporción de Rotación según Género",
x = "Rotación (Churn)",
y = "Proporción"
) +
scale_fill_manual(values = c("Male" = "skyblue", "Female" = "pink")) +
theme_minimal()
En el gráfico de barras se observa que la rotación (Churn) ocurre en proporciones similares entre hombres y mujeres. Esto indica que el género no parece tener una influencia fuerte en la decisión de abandonar la compañía.
library(ggplot2)
ggplot(Telco, aes(x=tenure, y=MonthlyCharges))+
geom_jitter()+
geom_smooth(method="lm", colour="red")+
labs(title=" Antigüedad del cliente vs los cargos mensuales", X="tenure", y="MonthlyCharges")
## Ignoring unknown labels:
## • X : "tenure"
## `geom_smooth()` using formula = 'y ~ x'
La gráfica de dispersión ilustra la relación entre la antigüedad del cliente (tenure) y los cargos mensuales (MonthlyCharges):
La línea de tendencia roja tiene una pendiente positiva, lo que indica que a medida que la antigüedad del cliente aumenta, sus cargos mensuales promedio también tienden a incrementarse.
Esto sugiere una relación positiva entre las dos variables, pero su fuerza es muy limitada, es decir, no nos dice mucho
De igual manera los puntos están extremadamente dispersos alrededor de la línea de tendencia.
Esta alta variabilidad significa que, sihay una tendencia general, la antigüedad del cliente (tenure) no es un factor determinante o un predictor confiable de los cargos mensuales de un cliente individual. Otras variables que no están en esta gráfica son los podrían principales impulsores del valor de MonthlyCharges, mas la antiguedad no lo es.
library(gridExtra)
library (ggplot2)
k1 = ggplot(data = Telco, aes(x = Churn, y = MonthlyCharges, fill = Churn)) +
geom_boxplot() +
scale_fill_manual(values = c("Yes" = "orange", "No" = "skyblue")) +
labs(
title = "Diagrama de Cajas: Cargos Mensuales vs Rotación",
x = "Rotación (Churn)",
y = "Cargos Mensuales (MonthlyCharges)"
) +
theme_minimal()
k2 = ggplot(data = Telco, aes(x = Churn, y = TotalCharges, fill = Churn)) +
geom_boxplot() +
scale_fill_manual(values = c("Yes" = "gray", "No" = "cyan")) +
labs(
title = "Diagrama de Cajas: Total Charges vs Rotación",
x = "Rotación (Churn)",
y = "Cargos Totales (TotalCharges)"
) +
theme_minimal()
k3 = ggplot(data = Telco, aes(x = Churn, fill = gender)) +
geom_bar(position = "fill") +
labs(
title = "Proporción de Rotación según Género",
x = "Rotación (Churn)",
y = "Proporción"
) +
scale_fill_manual(values = c("Male" = "skyblue", "Female" = "pink")) +
theme_minimal()
k4 =
ggplot(Telco, aes(x=tenure, y=MonthlyCharges))+
geom_jitter()+
geom_smooth(method="lm", colour="red")+
labs(title=" Antigüedad del cliente vs los cargos mensuales", X="tenure", y="MonthlyCharges")
grid.arrange(k1, k2, k3, k4)
## Warning: Removed 11 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Ignoring unknown labels:
## • X : "tenure"
## `geom_smooth()` using formula = 'y ~ x'
```