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 resultados muestran que en la base de datosla antigĂ¼edad de los clientes varĂa desde valores muy bajos (cercanos a 0 meses) hasta un mĂ¡ximo de 72 meses, lo que refleja una gran diversidad en el tiempo de relaciĂ³n con la empresa. TambiĂ©n se observa que los cargos mensuales presentan una amplia variaciĂ³n entre planes econĂ³micos y planes costosos, donde el promedio ronda los $64, con un mĂnimo cercano a $18 y un mĂ¡ximo de $118. Finalmente, en los cargos totales, los valores oscilan entre cifras muy bajas (clientes que apenas empiezan a pagar) y montos altos, lo que representa a los clientes mĂ¡s antiguos. En conjunto, estas estadĂsticas permiten ver la gran heterogeneidad de la base de clientes.
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 correlaciĂ³n indica que existe una relaciĂ³n fuerte y positiva entre los Cargos Totales y la AntigĂ¼edad del Cliente, ya que a mayor permanencia, mayor acumulaciĂ³n de cargos. Por otro lado, la relaciĂ³n entre Cargos Mensuales y AntigĂ¼edad es dĂ©bil, lo que sugiere que los cargos mensuales no dependen directamente del tiempo que el cliente lleve en la compañĂa.
library(ggplot2)
g1= ggplot(Telco_Cusomer_churn, aes(y=MonthlyCharges, x=Churn, fill=Churn))+
geom_boxplot() +
labs(title = "Cargos Mensuales vs RotaciĂ³n",
x = "RotaciĂ³n",
y = "Cargos Mensuales") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
print(g1)
Con base en el diagrama se puede concluir que los clientes que abandonan la compañĂa (Churn = Yes) tienden a tener cargos mensuales mĂ¡s altos en comparaciĂ³n con los que permanecen, lo que puede indicar que los planes mĂ¡s costosos generan mayor insatisfacciĂ³n. Asi mismo, se pueden observar valores atĂpicos , que representan clientes con planes muy costosos y que el rango de cargos mensuales de los que se quedan es mĂ¡s amplio.
library(ggplot2)
g2= ggplot(Telco_Cusomer_churn, aes(y=TotalCharges, x=Churn, fill=Churn))+
geom_boxplot() +
labs(title = "Cargos Totales vs RotaciĂ³n",
x = "RotaciĂ³n",
y = "Cargos Totales") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
print(g2)
## Warning: Removed 11 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
En este caso, los clientes que permanecen (Churn = No) suelen acumular cargos totales mĂ¡s altos al llevar mĂ¡s tiempo con la empresa, y que, por el contrario, quienes se van, en general, no alcanzan a acumular tanto porque duran poco tiempo como usuarios.
library(ggplot2)
g3= ggplot(Telco_Cusomer_churn, aes(x = Churn, fill = gender)) +
geom_bar(position = "stack") +
labs(title = "DistribuciĂ³n de GĂ©nero segĂºn la RotaciĂ³n de Clientes",
x = "RotaciĂ³n ",
y = "NĂºmero de Clientes",
fill = "Género") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
print(g3)
La distribuciĂ³n muestra que la rotaciĂ³n no presenta una diferencia significativa entre hombres y mujeres, ya que ambos gĂ©neros aparecen en proporciones similares dentro de los grupos de abandono y permanencia. Esto sugiere que el gĂ©nero no es un factor determinante en la rotaciĂ³n.
library(ggplot2)
# Diagrama de dispersiĂ³n con recta de regresiĂ³n
g4= ggplot(Telco_Cusomer_churn, aes(x = tenure, y = MonthlyCharges)) +
geom_point(alpha = 0.5, color = "steelblue") +
geom_smooth(method = "lm", se = FALSE, color = "red") +
labs(title = "RelaciĂ³n entre AntigĂ¼edad y Cargos Mensuales",
x = "AntigĂ¼edad ",
y = "Cargos mensuales ") +
theme_minimal()+
theme(plot.title = element_text(hjust = 0.5))
# CorrelaciĂ³n
cor(Telco_Cusomer_churn$tenure, Telco_Cusomer_churn$MonthlyCharges, use = "complete.obs")
## [1] 0.2478999
# Modelo lineal simple
modelo <- lm(MonthlyCharges ~ tenure, data = Telco_Cusomer_churn)
summary(modelo)
##
## Call:
## lm(formula = MonthlyCharges ~ tenure, data = Telco_Cusomer_churn)
##
## 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
print(g4)
## `geom_smooth()` using formula = 'y ~ x'
Al analizar la relaciĂ³n entre la antigĂ¼edad de los clientes y sus cargos mensuales, se encontrĂ³ una correlaciĂ³n positiva pero dĂ©bil (≈0.28), lo que significa que los clientes con mĂ¡s tiempo en la empresa tienden a pagar un poco mĂ¡s en cargos mensuales.
Por otra parte, el modelo lineal muestra un intercepto cercano a 55, lo que sugiere que un cliente nuevo tiene un cargo mensual estimado de alrededor de $55 y la pendiente, cercana a 0.20, señala que por cada mes adicional de permanencia, los cargos aumentan en promedio $0.20.
En conclusiĂ³n, aunque sĂ existe una relaciĂ³n y la antigĂ¼edad influye ligeramente, no explica de manera significativa las variaciones en los cargos mensuales. Esto sugiere que otros factores como el tipo de plan o los servicios adicionales contratados parecen ser mĂ¡s relevantes e influyen mĂ¡s en el monto facturado.
library(gridExtra)
library(grid)
theme_config = theme_minimal() +
theme(plot.title = element_text(hjust = 0.5, size = 9, face = "bold"),
axis.title = element_text(size = 10))
G1 = g1 + theme_config
G2 = g2 + theme_config
G3 = g3 + theme_config
G4 = g4 + theme_config
grid.arrange(G1, G2, G3, G4, ncol = 2,
top = textGrob("Panel GrĂ¡fico", gp=gpar(fontsize=12, fontface="bold")))
## Warning: Removed 11 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## `geom_smooth()` using formula = 'y ~ x'