library(ggplot2)
library(gridExtra)
library(corrplot)
## corrplot 0.95 loaded
Telco_Cusomer_Churn = read.table("Telco_Cusomer_Churn.csv",
header=TRUE, sep=",", dec=".", row.names = 1,
stringsAsFactors=TRUE)
summary(Telco_Cusomer_Churn)
## 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
Los clientes permanecen en promedio 32 meses y pagan cargos mensuales cercanos a 65 dĂłlares. La mayorĂa no son adultos mayores ni tienen pareja o dependientes. Predominan los contratos mes a mes, lo que incrementa el riesgo de rotaciĂłn. El churn alcanza aproximadamente el 27%, un nivel relevante a considerar.”
attach(Telco_Cusomer_Churn)
nuevosDatos = data.frame(tenure, MonthlyCharges, TotalCharges)
r = cor(na.omit(nuevosDatos))
corrplot(r, method="number")
Se observa que TotalCharges está fuertemente correlacionada con tenure y MonthlyCharges, lo cual tiene sentido ya que los cargos totales son producto del tiempo en la empresa y lo que paga cada mes. Y la relación entre tenure y MonthlyCharges es baja, lo que refleja que la antigüedad no está directamente ligada al costo mensual, sino al total como ya lo dijimos.
ggplot(Telco_Cusomer_Churn, aes(x=Churn, y=MonthlyCharges, fill=Churn)) +
geom_boxplot()
Los clientes que se dieron de baja (Yes) presentan en promedio mayores cargos mensuales, lo cual sugiere que tarifas más altas pueden estar asociadas a la fuga.
ggplot(Telco_Cusomer_Churn, aes(x=Churn, y=TotalCharges, fill=Churn)) +
geom_boxplot()
## Warning: Removed 11 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
Aunque los clientes con fuga tienen altos cargos mensuales, sus cargos totales suelen ser menores, porque abandonaron antes de acumular montos grandes.
ggplot(Telco_Cusomer_Churn, aes(x=Churn, fill=gender)) +
geom_bar()
La proporción de fuga entre hombres y mujeres es muy parecida. Esto indica que el género no es un factor determinante en la rotación.
ggplot(Telco_Cusomer_Churn, aes(x=tenure, y=MonthlyCharges)) +
geom_jitter() +
geom_smooth(method="lm", colour="red")
## `geom_smooth()` using formula = 'y ~ x'
cor(Telco_Cusomer_Churn$tenure, Telco_Cusomer_Churn$MonthlyCharges)
## [1] 0.2478999
modelo = lm(MonthlyCharges ~ tenure)
summary(modelo)
##
## Call:
## lm(formula = MonthlyCharges ~ tenure)
##
## 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
La correlación entre tenure y MonthlyCharges es baja, lo que indica que relación lineal es débil.
El modelo lineal muestra pendiente pequeña, lo que significa que la antigüedad casi no influye en los cargos mensuales.
El intercepto corresponde al costo base aproximado de un cliente al inicio.
g4 = ggplot(Telco_Cusomer_Churn, aes(x=Churn, y=MonthlyCharges, fill=Churn)) +
geom_boxplot()
g5 = ggplot(Telco_Cusomer_Churn, aes(x=Churn, y=TotalCharges, fill=Churn)) +
geom_boxplot()
g6 = ggplot(Telco_Cusomer_Churn, aes(x=Churn, fill=gender)) +
geom_bar()
g7= ggplot(Telco_Cusomer_Churn, aes(x=tenure, y=MonthlyCharges)) +
geom_jitter() +
geom_smooth(method="lm", colour="red")
grid.arrange(g4, g5, g6, g7)
## Warning: Removed 11 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## `geom_smooth()` using formula = 'y ~ x'