1 Introducción

Este informe presenta un análisis completo del dataset de abandono, incluyendo:

  • Exploración inicial del conjunto de datos
  • Limpieza y transformación de variables
  • Visualizaciones descriptivas
  • Análisis de abandono
  • Feature engineering avanzado
  • Validación gráfica de las nuevas variables

El objetivo es construir una base sólida para la modelización posterior.


2 1. Instalación y carga de librerías

El conjunto de librerías cargado (dplyr, ggplot2, scales, gridExtra) permite realizar tanto la exploración de datos como la construcción de visualizaciones avanzadas. Este conjunto asegura un flujo de análisis reproducible y con herramientas suficientes para manipulación, gráficos, facetas y combinación de paneles.

3 2. Importación y exploración inicial del dataset

## Vista previa del dataset:
##   id gender SeniorCitizen Partner Dependents tenure PhoneService MultipleLines
## 1  0   Male             0     Yes        Yes     29          Yes            No
## 2  1   Male             0     Yes        Yes     58          Yes            No
## 3  2   Male             0     Yes         No     58          Yes           Yes
##   InternetService OnlineSecurity OnlineBackup DeviceProtection TechSupport
## 1             DSL            Yes           No              Yes         Yes
## 2             DSL            Yes          Yes               No         Yes
## 3     Fiber optic             No          Yes               No          No
##   StreamingTV StreamingMovies       Contract PaperlessBilling
## 1          No              No       One year              Yes
## 2         Yes              No       Two year               No
## 3         Yes             Yes Month-to-month              Yes
##             PaymentMethod MonthlyCharges TotalCharges Churn
## 1            Mailed check           60.1      1653.85    No
## 2 Credit card (automatic)           69.5      3778.20    No
## 3        Electronic check          100.4      5841.35    No
## 
## Estructura:
## 'data.frame':    594194 obs. of  21 variables:
##  $ id              : int  0 1 2 3 4 5 6 7 8 9 ...
##  $ gender          : chr  "Male" "Male" "Male" "Female" ...
##  $ SeniorCitizen   : int  0 0 0 0 0 0 0 0 1 0 ...
##  $ Partner         : chr  "Yes" "Yes" "Yes" "No" ...
##  $ Dependents      : chr  "Yes" "Yes" "No" "No" ...
##  $ tenure          : int  29 58 58 1 1 1 24 72 1 55 ...
##  $ PhoneService    : chr  "Yes" "Yes" "Yes" "Yes" ...
##  $ MultipleLines   : chr  "No" "No" "Yes" "No" ...
##  $ InternetService : chr  "DSL" "DSL" "Fiber optic" "Fiber optic" ...
##  $ OnlineSecurity  : chr  "Yes" "Yes" "No" "No" ...
##  $ OnlineBackup    : chr  "No" "Yes" "Yes" "No" ...
##  $ DeviceProtection: chr  "Yes" "No" "No" "No" ...
##  $ TechSupport     : chr  "Yes" "Yes" "No" "No" ...
##  $ StreamingTV     : chr  "No" "Yes" "Yes" "No" ...
##  $ StreamingMovies : chr  "No" "No" "Yes" "No" ...
##  $ Contract        : chr  "One year" "Two year" "Month-to-month" "Month-to-month" ...
##  $ PaperlessBilling: chr  "Yes" "No" "Yes" "Yes" ...
##  $ PaymentMethod   : chr  "Mailed check" "Credit card (automatic)" "Electronic check" "Electronic check" ...
##  $ MonthlyCharges  : num  60.1 69.5 100.4 69.7 70.5 ...
##  $ TotalCharges    : num  1653.8 3778.2 5841.4 70.7 70.5 ...
##  $ Churn           : chr  "No" "No" "No" "Yes" ...
## 
## Clases:
##                  sapply(data, class)
## id                           integer
## gender                     character
## SeniorCitizen                integer
## Partner                    character
## Dependents                 character
## tenure                       integer
## PhoneService               character
## MultipleLines              character
## InternetService            character
## OnlineSecurity             character
## OnlineBackup               character
## DeviceProtection           character
## TechSupport                character
## StreamingTV                character
## StreamingMovies            character
## Contract                   character
## PaperlessBilling           character
## PaymentMethod              character
## MonthlyCharges               numeric
## TotalCharges                 numeric
## Churn                      character
  • El dataset contiene 594.194 observaciones y 21 variables, lo que indica un volumen considerable y adecuado para análisis estadístico y modelado.
  • Las variables incluyen información demográfica, contractual, servicios, cargos y la variable objetivo abandono.
  • Gran parte de las columnas llegan como carácter, requiriendo su conversión posterior a factor.
  • No se observan columnas vacías ni estructuras anómalas.
  • El dataset presenta una mezcla de variables numéricas, categóricas y binarias, coherente con un problema de abandono típico del sector telecomunicaciones.

4 3. Conversión y limpieza de tipos de datos

## 
## Valores faltantes en el dataframe:
## [1] 0
  • Todas las columnas de tipo carácter se transformaron correctamente a factores, optimizando memoria y permitiendo análisis categórico.
  • La variable SeniorCitizen fue convertida a factor con niveles “Yes/No”, mejorando su interpretabilidad.
  • TotalCharges, comúnmente conflictiva en datasets de abandono, se convirtió exitosamente a numérica tras limpieza de espacios en blanco.
  • El dataset no presentó valores NA en TotalCharges tras la conversión, lo cual sugiere una carga correcta o una limpieza previa del proveedor.

5 4. Resumen estadístico y valores faltantes

##      tenure      MonthlyCharges    TotalCharges   
##  Min.   : 1.00   Min.   : 18.25   Min.   :  18.8  
##  1st Qu.:12.00   1st Qu.: 29.90   1st Qu.: 639.6  
##  Median :35.00   Median : 74.10   Median :1433.7  
##  Mean   :36.58   Mean   : 65.87   Mean   :2494.4  
##  3rd Qu.:62.00   3rd Qu.: 90.80   3rd Qu.:4263.8  
##  Max.   :72.00   Max.   :118.75   Max.   :8684.8
## 
## Valores NA por columna:
##               id           gender    SeniorCitizen          Partner 
##                0                0                0                0 
##       Dependents           tenure     PhoneService    MultipleLines 
##                0                0                0                0 
##  InternetService   OnlineSecurity     OnlineBackup DeviceProtection 
##                0                0                0                0 
##      TechSupport      StreamingTV  StreamingMovies         Contract 
##                0                0                0                0 
## PaperlessBilling    PaymentMethod   MonthlyCharges     TotalCharges 
##                0                0                0                0 
##            Churn 
##                0
  • No existen valores faltantes en ninguna variable, lo que facilita modelado sin necesidad de imputación.
  • La variable permanencia oscila entre 1 y 72 meses, con mediana de 35 meses, indicando diversidad en antigüedad de los clientes.
  • Los cargos mensuales (MonthlyCharges) muestran alta variabilidad, con valores entre 18 y 118 USD, lo cual revela múltiples combinaciones de servicio.
  • TotalCharges presenta un rango amplio (18 a 8684 USD), consistente con la acumulación mensual multiplicada por permanencia.

6 5. Análisis inicial del abandono

  • La tasa de abandono es 22.52%, mientras que 77.48% permanece activo.
  • Existe un desbalance moderado en la variable objetivo, típico de escenarios de abandono reales.
  • El volumen de casos positivos es suficiente para modelado supervisado sin necesidad estricta de técnicas de oversampling.

7 6. Distribución del permanencia

  • La mayor concentración de abandono se encuentra en clientes con muy poca antigüedad (1–6 meses).
  • Se observan picos pronunciados en abandono en los primeros meses, lo que indica un problema de onboarding o expectativas iniciales.
  • Los clientes con permanencia alto (cercano a 72 meses) exhiben bajas tasas de abandono, reflejando mayor fidelización.
  • La distribución para abandono “No” es más uniforme y se extiende hacia permanencias altos.

8 7. Variables categóricas vs abandono

8.0.1 Demografía

  • gender no muestra diferencia significativa entre categorías.
  • SeniorCitizen presenta abandono ligeramente mayor en ciudadanos mayores.
  • Partner y Dependents muestran menor abandono cuando el cliente tiene familia o dependientes, posiblemente por mayor estabilidad económica.

8.0.2 Estado de cuenta

  • Contract es uno de los factores más determinantes:
    • Month-to-month → abandono alto.
    • One year / Two year → abandono bajo.
  • PaperlessBilling: ligera asociación con abandono aumentado.
  • PaymentMethod: el método Electronic check se asocia fuertemente a abandono elevado.

8.0.3 Servicios contratados

  • Falta de servicios de seguridad o soporte técnico (OnlineSecurity, TechSupport) se asocia a mayor abandono.
  • Clientes con servicios de streaming muestran variaciones, pero predominan patrones moderados.

9 8. Curvas KDE para variables numéricas

  • Para permanencia, las densidades corroboran que clientes con permanencias bajos tienen mayor probabilidad de abandono.
  • En MonthlyCharges, la distribución de clientes abandono se desplaza hacia valores más altos, indicando sensibilidad al precio.
  • En TotalCharges, los clientes que hacen abandono muestran acumulados bajos → consistente con permanencia temprano.

10 9. Matriz de correlación datos

  • Existe alta correlación entre TotalCharges y permanencia (cercano al 0.77), debido a la naturaleza acumulativa.
  • MonthlyCharges muestra correlación moderada con TotalCharges.
  • No se observan correlaciones problemáticas que invaliden el modelado, aunque TotalCharges debería manejarse con precaución (colinealidad).

11 10. Facetado avanzado

11.0.1 Por tipo de contrato

  • Clientes con contratos Month-to-month tienen picos de abandono marcados en permanencias bajos.

  • Contratos anuales o de dos años muestran densidades más estables y abandono mucho menor.

11.0.2 Por método de pago

  • Electronic check destaca como el método con mayor abandono, independientemente de permanencia.

  • Métodos automáticos (Bank transfer, Credit card) presentan patrones más estables, con menos abandono.

12 11. Feature Engineering

##   id gender SeniorCitizen Partner Dependents tenure PhoneService MultipleLines
## 1  0   Male            No     Yes        Yes     29          Yes            No
## 2  1   Male            No     Yes        Yes     58          Yes            No
## 3  2   Male            No     Yes         No     58          Yes           Yes
## 4  3 Female            No      No         No      1          Yes            No
## 5  4 Female            No      No         No      1          Yes            No
## 6  5   Male            No     Yes        Yes      1          Yes            No
##   InternetService      OnlineSecurity        OnlineBackup    DeviceProtection
## 1             DSL                 Yes                  No                 Yes
## 2             DSL                 Yes                 Yes                  No
## 3     Fiber optic                  No                 Yes                  No
## 4     Fiber optic                  No                  No                  No
## 5     Fiber optic                  No                  No                  No
## 6              No No internet service No internet service No internet service
##           TechSupport         StreamingTV     StreamingMovies       Contract
## 1                 Yes                  No                  No       One year
## 2                 Yes                 Yes                  No       Two year
## 3                  No                 Yes                 Yes Month-to-month
## 4                  No                  No                  No Month-to-month
## 5                  No                  No                  No Month-to-month
## 6 No internet service No internet service No internet service Month-to-month
##   PaperlessBilling             PaymentMethod MonthlyCharges TotalCharges Churn
## 1              Yes              Mailed check          60.10      1653.85    No
## 2               No   Credit card (automatic)          69.50      3778.20    No
## 3              Yes          Electronic check         100.40      5841.35    No
## 4              Yes          Electronic check          69.70        70.70   Yes
## 5              Yes          Electronic check          70.45        70.45   Yes
## 6              Yes Bank transfer (automatic)          20.20        20.20    No
##   Total_Servicios Pago_Promedio_Historico Diferencia_Precio
## 1               3                57.02931          3.070690
## 2               4                65.14138          4.358621
## 3               3               100.71293         -0.312931
## 4               0                70.70000         -1.000000
## 5               0                70.45000          0.000000
## 6               0                20.20000          0.000000
##                    Riesgo_Contrato_Pago
## 1                  Riesgo Medio (Otros)
## 2      Bajo Riesgo (Largo Plazo + Auto)
## 3 Alto Riesgo (Mes a mes + Cheque Elec)
## 4 Alto Riesgo (Mes a mes + Cheque Elec)
## 5 Alto Riesgo (Mes a mes + Cheque Elec)
## 6                  Riesgo Medio (Otros)
  • Total_Servicios demuestra que cuantos más servicios contrata el cliente, menos probable es el abandono (efecto “pegamento”).
  • Diferencia_Precio identifica aumentos de tarifa recientes; los clientes abandono muestran valores más altos.
  • Pago_Promedio_Historico permite detectar clientes con irregularidad en cobros.
  • Riesgo_Contrato_Pago separa claramente segmentos de alto y bajo riesgo combinando Contract y PaymentMethod.

13 12. Validación visual de las nuevas variables

  • Total_Servicios: abandono prácticamente desaparece en clientes con más de 4 servicios.

  • Diferencia_Precio: curvas KDE muestran que los clientes abandono pagan más que su histórico → fuerte predictor.

  • Riesgo_Contrato_Pago: la nueva variable estratifica perfectamente los niveles de riesgo creados, validando su utilidad para modelado.

## Ignoring unknown labels:
## • colour : "Método:"

14 13. Modelado Predictivo y Evaluación (XGBoost)

Para validar matemáticamente los hallazgos del análisis exploratorio, se entrenó un modelo de Machine Learning (XGBoost) utilizando las variables originales y las creadas en la fase de Feature Engineering. Los resultados son altamente concluyentes:

## Cargando paquete requerido: data.table
## 
## Adjuntando el paquete: 'data.table'
## The following object is masked from 'package:purrr':
## 
##     transpose
## The following objects are masked from 'package:dplyr':
## 
##     between, first, last

Importancia de Variables (Feature Importance):

El modelo confirma que la variable sintética Riesgo_Contrato_Pago (específicamente la categoría “Mes a mes + Cheque Elec”) es, con gran diferencia, el predictor más fuerte de abandono. Le siguen en importancia la antigüedad del cliente (tenure) , los contratos de dos años (ContractTwo year) y el servicio de fibra óptica (InternetServiceFiber optic). Esto valida rotundamente el esfuerzo invertido en la creación de nuevas variables combinadas.

## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.

Capacidad Predictiva (Curva ROC y AUC):

El modelo alcanza un AUC (Área bajo la curva) de 0.913. En problemas de retención de clientes, un AUC superior a 0.85 se considera excelente. Esto indica que nuestro modelo tiene una capacidad del 91.3% para distinguir correctamente entre un cliente que se va a dar de baja y uno que permanecerá activo.

Matriz de Confusión:

La matriz demuestra que el modelo es capaz de identificar correctamente un gran volumen de casos positivos y negativos. Aunque existe una proporción de falsos positivos y falsos negativos (normal en clases desbalanceadas), el alto rendimiento global asegura que las campañas de retención basadas en este modelo tendrán una altísima tasa de acierto, optimizando el presupuesto de marketing

15 13. Conclusiones Finales.

El presente estudio proporciona una radiografía precisa y validada matemáticamente sobre los factores que impulsan la pérdida de clientes (churn). A través de un análisis exploratorio profundo y la posterior validación mediante un modelo predictivo avanzado (XGBoost) , se han identificado patrones críticos con alta consistencia interna.

  • El “Valle de la Muerte” y la Antigüedad: El análisis confirma que la permanencia temprana es el factor de riesgo más crítico. Las tasas de abandono se disparan en los primeros seis meses , sugiriendo que la fricción en el proceso de onboarding o una brecha en las expectativas iniciales son letales para la retención. El algoritmo de Machine Learning confirmó que la variable tenure es el segundo factor con mayor peso predictivo de todo el conjunto de datos.

  • La Tormenta Perfecta: Contrato y Método de Pago: La fase de Feature Engineering demostró su inmenso valor al crear la variable Riesgo_Contrato_Pago. El modelo XGBoost determinó que la combinación de contratos Month-to-month con pagos mediante Electronic check es el predictor número uno de abandono. Los clientes bajo esta modalidad presentan una inestabilidad sistémica frente a aquellos con contratos anuales y pagos automáticos.

  • El Efecto “Pegamento” de los Servicios y la Sensibilidad al Precio: Se ha evidenciado una relación inversamente proporcional entre el volumen de servicios contratados y la probabilidad de fuga: a mayor cantidad de servicios (soporte, seguridad, streaming), menor es el abandono. Adicionalmente, variables como el incremento reciente en la tarifa mensual (Diferencia_Precio) actúan como un fuerte catalizador de la baja.

  • Fiabilidad del Modelo: El ecosistema analítico construido culminó en un modelo predictivo con un AUC de 0.913. Este nivel de precisión superior al 91% indica que la empresa ya no necesita actuar a ciegas. Poseemos una herramienta estadísticamente robusta capaz de predecir la fuga antes de que ocurra.-