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
Dentro de las estadÃsticas descriptivas anteriores podemos destacar en cuanto al perfil demográfico: - Hay un balance entre el número de mujeres y hombres - La mayorÃa de personas NO son adultos mayores; estos útimos comforman únicamente el 16% del grupo demográfico. - Más de la mitad de las personas no tienen pareja, la otra mitad sÃ. Asimismo los no dependientes doblan la cantidad de dependientes.
Por otro lado, sobre la permanencia (Tenure): - El rango de permanencia va hasta 72 meses, pero el promedio es 32, lo que significa que la mayorÃa de personas se quedan solo entre 3 y 3 años.
Finalmente sobre la rotación se puede ver que la mayoria de clientes NO se ha dado de baja, indicando una baja a moderada rotación
df <- read.csv("Telco_Cusomer_Churn.csv")
df_num <- df[, sapply(df, is.numeric)]
cor_matrix <- cor(df_num, use = "complete.obs")
corrplot(cor_matrix, method = "color", type = "upper",
tl.cex = 0.8, tl.col = "black", addCoef.col = "black")
La matriz de correlación muestra que existe una relación fuerte y positiva entre el Tenure (tiempo de permanencia de un cliente) y los TotalCharges (cargos totales) de 0.83, esto significa que mientras más tiempo permanece un cliente, mayor es el acumulado de pagos; también se observa una correlación moderada entre los MonthlyCharges y los TotalCharges (0.65), lo que podrÃa indicar que quienes pagan más al mes tienden a acumular mayores cargos. Por el otro extremo la variable de adulto mayor por ejemplo muestra correlaciones muy bajas con todas las demás, por lo que no parece tener una influencia significativa nada.
g3 = ggplot(Telco, aes(y=MonthlyCharges, x=Churn, fill=Churn)) + geom_boxplot() +
scale_fill_brewer(palette = "Blues") + labs(title="Cargos Mensuales y Rotación", x ="Churn")
g3
El diagrama de arriba muestra que los clientes que presentaron rotación tienden a tener cargos mensuales más altos en comparación con aquellos que no se dieron de baja, ya que la mediana en el grupo con rotación está alrededor de 80, mientras que en el grupo sin rotación está cerca de 65. Además, los clientes sin rotación presentan una mayor dispersión en los valores de los cargos, lo que indica más variabilidad en sus pagos, mientras que en los clientes con rotación los cargos se concentran en un rango más estrecho. Se podrÃa decir entonces que los cargos mensuales elevados podrÃan estar asociados con una mayor probabilidad de rotación.
g4 = ggplot(Telco, aes(y=TotalCharges, x=Churn, fill=Churn)) + geom_boxplot() +
scale_fill_brewer(palette = "Reds") + labs(title="Cargos Totales y Rotación", x ="Churn")
g4
## Warning: Removed 11 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
Según la gráfica se puede ver que mientras mas dinero gaste la persona en promedio, más probabilidad habrá de que vuelva a la compañÃa, aunque se logra ver que en múltiples casos atÃpicos cuando llegan a gastar gran cantidad de dinero en servicios, no vuelven a la compañÃa.
g1 = ggplot(Telco, aes(x = Churn, fill = gender ))+
geom_bar()
g1
Se puede ver que tanto en los usuarios que se quedan como en los que no vuelven a la compañÃa (se fugan), no se ve influenciado estas estadÃsticas por alguna razón de género, ya que hay una proporción de aproximadamente 1:1.
g2 = ggplot(Telco, aes(x = tenure , y = MonthlyCharges ))+
geom_jitter(colour = "blue")+
geom_smooth(method = "lm", colour = "red")
g2
## `geom_smooth()` using formula = 'y ~ x'
attach(Telco)
nuevosdatos = data.frame(tenure, MonthlyCharges, TotalCharges)
r = cor(na.omit(nuevosdatos))
corrplot(r, method = "number")
modelo = lm(MonthlyCharges~tenure, data=Telco)
summary(modelo)
##
## Call:
## lm(formula = MonthlyCharges ~ tenure, data = Telco)
##
## Residuals:
## Min 1Q Median 3Q Max
## -57.498 -27.251 6.245 24.943 54.376
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 54.92978 0.57476 95.57 <2e-16 ***
## tenure 0.30372 0.01415 21.47 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 29.15 on 7041 degrees of freedom
## Multiple R-squared: 0.06145, Adjusted R-squared: 0.06132
## F-statistic: 461 on 1 and 7041 DF, p-value: < 2.2e-16
Se puede ver que, aunque sea tenue, hay una correlación entre el
tiempo en el que ha estado en la compañÃa y el dinero que ha gastado,
viendo que su correlación es positiva ya que cuando más tiempo estén,
más dinero gastara el cliente. La pendiente seria de 0.30372
El punto inicial o intercepto seria de 54.92978
El modelo lineal seria: AN=Antigüedad del cliente F(TE)= 54.92978 x
0.30372AN Además, se ve que el cliente al inicio gasta aproximadamente
54. 92978 cantidades de dinero y que de ahà comenzaran a gastar 0.30372
cantidades de dinero al mes.
grid.arrange(g1,g2,g3,g4)
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 11 rows containing non-finite outside the scale range
## (`stat_boxplot()`).