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
Estadísticas descriptivas del conjunto de datos mas importantes
Se observa que la mayoría de los clientes tiene relativamente pocos meses en la empresa, ya que la mediana es 29 meses y el valor máximo es 72. Esto indica que muchos clientes son relativamente nuevos y pocos llegan a permanecer más de 5 años.
Predomina el contrato mes a mes, seguido a bastante distancia de los contratos de uno o dos años. Esto sugiere que la mayoría de clientes busca flexibilidad y no se compromete a largo plazo, lo cual puede estar relacionado con un mayor riesgo de abandono.
Alrededor de una cuarta parte de los clientes aparece en la categoría de “Yes” (abandono), mientras que la mayoría permanece en “No”. Sin embargo, la proporción de clientes que se van es suficientemente alta como para considerarse un problema importante para la empresa.
library(corrplot)
## corrplot 0.95 loaded
attach(Telco_Cusomer_Churn)
nuevosDatos= data.frame(tenure, MonthlyCharges,TotalCharges)
r = cor(na.omit(nuevosDatos))
corrplot(r, method="number")
La matriz de correlación evidencia tres relaciones clave. En primer lugar, la correlación entre tenure y MonthlyCharges es positiva pero débil (0.25), lo que significa que, aunque existe cierta relación, la antigüedad de los clientes no determina de manera significativa el valor que pagan mensualmente y que la correlacion en este aso e sbaja porque esta má cerca de 0 que 1. En segundo lugar, se observa una correlación fuerte entre tenure y TotalCharges (0.83), lo cual es lógico, ya que a mayor tiempo de permanencia, mayor es el acumulado en cargos totales, por lo que tiene una correlación alta debido a que el dato nos da más cerca de 1. Finalmente, la relación entre MonthlyCharges y TotalCharges es moderada (0.65), lo que refleja que los cargos totales dependen en parte del valor mensual, pero también de la duración de la relación con la compañía.
En conclusión, los resultados muestran que los TotalCharges están más influenciados por la antigüedad del cliente que por el costo mensual, mientras que el pago mensual mantiene un impacto complementario en la suma final
En el eje Y cargos Mensuales y en el eje X la rotación
library(ggplot2)
ggplot(Telco_Cusomer_Churn, aes(y=MonthlyCharges, x=Churn, fill=Churn))+
geom_boxplot()
Según el diagrama de cajas de la variable Cargos mensuales (MonthlyCharges), se observa que en el grupo de clientes que no presentan churn (No) los datos son más dispersos, lo que indica una mayor heterogeneidad en los valores de sus cargos. Además, la mediana en este grupo es más baja en comparación con los clientes que sí presentan churn.
Por otro lado, en el grupo de clientes que sí presentan churn (Yes) los cargos mensuales se muestran más homogéneos, con una menor dispersión. Sin embargo, su mediana es más alta, lo que refleja que estos clientes, en promedio, pagan cargos mensuales mayores que aquellos que permanecen en la compañía.
En el eje Y cargos totales y en el eje X la rotación
ggplot(Telco_Cusomer_Churn, aes(y=TotalCharges, x=Churn, fill=Churn))+
geom_boxplot()
## Warning: Removed 11 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
Según el diagrama de cajas de la variable Cargos totales (TotalCharges), se observa que en el grupo de clientes que no presentan churn (No) tienen unos datos mas heterogeneos por lo que la caja es mas amplia y representa mayor variabilidad, la mediana es mas alta por lo que podemos interpretar que las personas que optan por el no tienen mayor numero de cargos totales.
En la grafica del si, encontramos que sus datos son mas homogeneos sin embargo tiene muchos datos atipicos, la mediana es mas baja por lo que podemos interpretar que las personas que optan por el si tienen cargos totales mas bajos
En el eje X encontramos la rotación y por cada barra se muestre el género.
ggplot(Telco_Cusomer_Churn, aes(x=Churn, fill=gender))+
geom_bar()
Segun lo que podemos obvservar en la grafica para el (Churn = No), Es el grupo más grande. Además Se observa que tanto hombres como mujeres se distribuyen casi de manera equilibrada, aunque el número de mujeres parece ligeramente superior.
Mientras que los clientes que sí se fueron por el (Churn = Yes): El volumen es mucho menor en comparación con los que permanecieron. Nuevamente, la proporción entre hombres y mujeres es muy similar, sin embargo es más baja que las personas del “No”
En conclusión, La variable género no parece ser un factor determinante en la rotación, ya que tanto hombres como mujeres presentan proporciones semejantes en ambos grupos (los que se quedan y los que se van).
ggplot(Telco_Cusomer_Churn,aes(x=tenure,y=MonthlyCharges))+
geom_jitter()+
geom_smooth(method = "lm", colour = "gold")
## `geom_smooth()` using formula = 'y ~ x'
y=MonthlyCharges
x=tenure
cor(y=MonthlyCharges,x=tenure)
## [1] 0.2478999
modelo=lm(y ~ x)
summary(modelo)
##
## Call:
## lm(formula = y ~ x)
##
## 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 ***
## x 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
Correlacion
En términos estadísticos, mientras más cercano a 1 o -1 sea el valor, más fuerte es la correlación. Como 0.24 está mucho más cerca de 0, quiere decir que tenemos una correlación baja
En otras palabras: a mayor permanencia, los cargos mensuales tienden a aumentar, pero la relación no es fuerte, lo que significa que hay otros factores que influyen en los cargos mensuales más allá del tiempo con la compañía.
Intercepto (54.93)
El intercepto representa el valor estimado de la variable dependiente (MonthlyCharges) cuando la variable independiente (tenure) es cero.
En este caso, cuando un cliente recién inicia (tenure = 0 meses), el modelo estima que su cargo mensual promedio será de aproximadamente 54.93 unidades monetarias.
La pendiente indica el cambio esperado en los cargos mensuales por cada incremento de una unidad en la variable tenure (es decir, por cada mes adicional que el cliente permanece en la compañía).
Aquí la pendiente es positiva (0.3037), lo que significa que: Por cada mes adicional de permanencia, el cargo mensual aumenta en promedio 0.30 unidades monetarias.
8 punto
library(ggplot2)
library(gridExtra)
g1= ggplot(Telco_Cusomer_Churn,aes(x=Churn,y = MonthlyCharges))+
geom_boxplot(fill="blue")
g2= ggplot(Telco_Cusomer_Churn, aes(x=Churn, y = TotalCharges))+
geom_boxplot(fill="red")
g3= ggplot(Telco_Cusomer_Churn, aes(x=Churn, fill = gender))+
geom_bar()
g4= ggplot(Telco_Cusomer_Churn,aes(x=tenure,y=MonthlyCharges))+
geom_jitter()+
geom_smooth(method = "lm",colour = "skyblue")
grid.arrange(g1, g2, g3, g4)
## Warning: Removed 11 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## `geom_smooth()` using formula = 'y ~ x'