R Markdown

Telco_Cusomer_Churn = read.table("Telco_Cusomer_Churn.csv", header=TRUE,sep=",",
                                 dec=".", stringsAsFactors = TRUE)
summary(Telco_Cusomer_Churn)
##       customerID      gender     SeniorCitizen    Partner    Dependents
##  0002-ORFBO:   1   Female:3488   Min.   :0.0000   No :3641   No :4933  
##  0003-MKNFE:   1   Male  :3555   1st Qu.:0.0000   Yes:3402   Yes:2110  
##  0004-TLHLJ:   1                 Median :0.0000                        
##  0011-IGKFF:   1                 Mean   :0.1621                        
##  0013-EXCHZ:   1                 3rd Qu.:0.0000                        
##  0013-MHZWF:   1                 Max.   :1.0000                        
##  (Other)   :7037                                                       
##      tenure      PhoneService          MultipleLines     InternetService
##  Min.   : 0.00   No : 682     No              :3390   DSL        :2421  
##  1st Qu.: 9.00   Yes:6361     No phone service: 682   Fiber optic:3096  
##  Median :29.00                Yes             :2971   No         :1526  
##  Mean   :32.37                                                          
##  3rd Qu.:55.00                                                          
##  Max.   :72.00                                                          
##                                                                         
##              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
library(ggplot2)
var(Telco_Cusomer_Churn$tenure)
## [1] 603.1681
var(Telco_Cusomer_Churn$MonthlyCharges)
## [1] 905.4109
var(Telco_Cusomer_Churn$TotalCharges)
## [1] NA
sd(Telco_Cusomer_Churn$tenure)
## [1] 24.55948
sd(Telco_Cusomer_Churn$MonthlyCharges)
## [1] 30.09005
sd(Telco_Cusomer_Churn$TotalCharges)
## [1] NA
barplot(table(Telco_Cusomer_Churn$gender), col = "blue",
        main = "GENERO")

barplot(table(Telco_Cusomer_Churn$SeniorCitizen), col = "skyblue",
        main = "MAYORES DE DEDAD")

barplot(table(Telco_Cusomer_Churn$MultipleLines), col = "skyblue",
        main = "MAYORES DE DEDAD")

hist(Telco_Cusomer_Churn$tenure, , col = ("purple"),
  main = "MESES DE ANTIGUEDAD EN LA EMPRESA",
  xlab = "CANTIDAD DE MESES")

ggplot(Telco_Cusomer_Churn, aes(y=MonthlyCharges))+
  geom_boxplot(fill="green2")+
  labs(title="CARGAS MENSUALES")+
  ylab("Numero de cargas mensuales")

barplot(table(Telco_Cusomer_Churn$gender), col = "blue",
        main = "GENERO")

barplot(table(Telco_Cusomer_Churn$Partner), col = "blue2",
        main = "PAREJA DE TRABAJO")

barplot(table(Telco_Cusomer_Churn$Dependents), col = "blue3",
        main = "ES DEPENDIENTE")

barplot(table(Telco_Cusomer_Churn$PhoneService), col = "blue4",
        main = "SERVICIO CELULAR")

barplot(table(Telco_Cusomer_Churn$MultipleLines), col = "blue4",
        main = "LINEAS MULTIPLES")

barplot(table(Telco_Cusomer_Churn$InternetService), col = "darkblue",
        main = "SERVICIO A INTERNET")

barplot(table(Telco_Cusomer_Churn$OnlineSecurity), col = "purple",
        main = "SEGURIDAD ONLINE")

barplot(table(Telco_Cusomer_Churn$OnlineBackup), col = "purple3",
        main = "COPIA DE SEGURIDAD EN LINEA")

barplot(table(Telco_Cusomer_Churn$DeviceProtection), col = "purple4",
        main = "PROTECCION DE DISPOSITIVO")

barplot(table(Telco_Cusomer_Churn$TechSupport), col = "pink4",
        main = "SPOROTE TECNICO")

barplot(table(Telco_Cusomer_Churn$StreamingTV), col = "lightgreen",
        main = "SERVICIO DE STRRAMING EN TV")

barplot(table(Telco_Cusomer_Churn$StreamingMovies), col = "darkgreen",
        main = "ES")

barplot(table(Telco_Cusomer_Churn$Contract), col = "green4",
        main = "CUENTA CON CONTRATO")

barplot(table(Telco_Cusomer_Churn$PaperlessBilling), col = "yellow4",
        main = "FACTURACION SIN PAPEL")

barplot(table(Telco_Cusomer_Churn$PaymentMethod), col = "yellow3",
        main = "METODO DE PAGO")

barplot(table(Telco_Cusomer_Churn$Churn), col = "black",
        main = "BATIR?")

library(ggplot2)
library(corrplot)
## corrplot 0.95 loaded
r = cor(Telco_Cusomer_Churn[, c(3, 6, 19, 20)])
corrplot(r, method = "number")

g4 = ggplot(Telco_Cusomer_Churn, aes(x = Churn, y = MonthlyCharges, fill = Churn)) +
  geom_boxplot() +
  labs(title = "Distribución de Cargos Mensuales por Estado de Rotación",
       x = "Rotación (Churn)", 
       y = "Cargos Mensuales (Monthly Charges)") +
  theme_minimal()
g4

g5 = ggplot(Telco_Cusomer_Churn, aes(x = Churn, y = MonthlyCharges, fill = Churn)) +
  geom_boxplot(alpha = 0.7) +
  labs(title = "Distribución de Cargos Mensuales por Estado de Rotación",
       x = "Rotación del Cliente", 
       y = "Cargos Mensuales ($)",
       fill = "Rotación") +
  scale_fill_manual(values = c("No" = "pink3", "Yes" = "salmon")) +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"))
g5

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
g6 = ggplot(Telco_Cusomer_Churn, aes(x = Churn, fill = gender)) +
  geom_bar(position = "fill") +
  labs(title = "Distribución de Género por Estado de Rotación",
       x = "Rotación del Cliente", 
       y = "Proporción",
       fill = "Género") +
  scale_fill_manual(values = c("Female" = "brown1", "Male" = "brown4")) +
  scale_y_continuous(labels = scales::percent) +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"))
g6

g7 = ggplot(Telco_Cusomer_Churn, aes(x = tenure, y = MonthlyCharges)) +
  geom_point(alpha = 0.6, color = "blue") +
  geom_smooth(method = "lm", se = TRUE, color = "red") +
  labs(title = "Relación entre Antigüedad y Cargos Mensuales",
       x = "Antigüedad (meses)", 
       y = "Cargos Mensuales ($)") +
  theme_minimal()
g7
## `geom_smooth()` using formula = 'y ~ x'

library(gridExtra)
## 
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
## 
##     combine
grid.arrange(g4, g5, g6, g7, ncol = 2, nrow = 2)
## `geom_smooth()` using formula = 'y ~ x'

CONCLUSIONES

  • Los sexos estan distribuidos casi exactamente iguales, ay una pequeña diferencia casi imperceptible, donde hay una leve diferencia habiendo mas hombres

*Hay personas sin servicio a internet, lo cual le imposibilita muchos otros servicios

  • Son mas las personas que NO tienene seguridad online que las que SI cuentan con el servicio. Tambien esta la frección sin acsseso a internet

  • Al igual que con la seguridad online, la mayoria de personas no tienen proteccion del dsipositivo

  • La mayoria de personas hacen facturacion sin papel

  • La mayoria de personas no son deendientes

  • La mayoria de empleados son recientes, y se vuelve a ver una leve subida en empleados muy antiguos, pero donde hay menor cantidad es en antiguedad media.

  • Respecto a la copia de seguridad, hay mas personas que no realizan esta accion, aunque gran cantidad si la realiza, igualmente estan las personas sin acceso a internet

  • respecto a la distribucion de cargos mensuales, Si la mediana (la línea dentro de la caja) es más alta para el grupo “Yes” (sí rotaron) que para el grupo “No”, esto podría indicar que los clientes con cargos mensuales más altos tienden a cancelar el servicio con mayor frecuencia.

  • respecto a la distribucion de cargosmensuales por rotacion, Una caja más amplia en el grupo “Sí” indica mayor variabilidad en los cargos totales entre los clientes que se van. Entonces Si la caja del grupo “No” es estrecha y alta, significa que los clientes leales tienen cargos totales más consistentes y generalmente más altos.

  • respecto a la distribucion de rotacion por genero, No existe diferencia significativa en la rotación por género. Cerca del 50% hombres y 50% mujeres en cada categoría de rotación. Sugiere que la cartera de clientes está balanceada en términos de género.

  • Respecto a la corelacio entre antiguedad y cargos mensuales, se ve que no tienen ninguna correlacion como puede mostrar el grafico de dispersion.