CULTIVA IA · Datos & Análisis
Cliente: NutriTrack Pro (ficticio)
Análisis de Supervivencia — Churn SaaS
Generado: junio 2025 · scikit-survival 0.23

Análisis de Supervivencia de Churn
NutriTrack Pro — SaaS de Nutrición Clínica

Comparativa de modelos Cox · RSF · GBS · Segmentación de riesgo · Factores de cancelación

📊Resumen Ejecutivo — 1.200 Clientes Analizados

Clientes totales
1.200
Dataset 2023–2025
Eventos (churn)
312
26% tasa de cancelación
Censurados (activos)
888
74% siguen activos
Supervivencia mediana
14.3m
meses hasta cancelación
Mejor C-index (GBS)
0.847
Uno's C-index test set

🤖Comparativa de Modelos de Supervivencia

Modelo C-index (Uno) IBS AUC 12m Tiempo entreno Interpretable Veredicto
Gradient Boosting (GBS)
0.847
0.112 0.891 4.2 min Limitada Ganador
Random Survival Forest
0.819
0.128 0.863 2.8 min Importancia vars Recomendado
Cox PH (baseline)
0.784
0.147 0.821 0.3 s Alta (HR) Baseline
Fast Survival SVM
0.761
0.159 0.798 1.1 min No Descartado
Selección final: Se usará GBS (Gradient Boosting Survival) para predicción en producción (máximo C-index=0.847, IBS=0.112) y el modelo Cox PH para comunicación a negocio (coeficientes interpretables como Hazard Ratios).

📈Curvas de Supervivencia y AUC Temporal

Kaplan-Meier por Plan de Suscripción
Probabilidad de no cancelar según plan contratado
100% 80% 60% 40% 20% 0 6m 12m 18m 24m Tiempo (meses) P(Supervivencia)
Enterprise
Professional
Basic
Freelance
KM por NPS de Onboarding
El NPS inicial predice fuertemente el tiempo de retención
100% 80% 60% 40% 20% 0 6m 12m 18m 24m Tiempo (meses)
NPS ≥80
NPS 50–79
NPS <50

AUC Temporal por Modelo (mayor = mejor discriminación en ese horizonte)

Horizonte 6 meses
GBS0.912
RSF0.883
Cox0.841
Horizonte 12 meses
GBS0.891
RSF0.863
Cox0.821
Horizonte 18 meses
GBS0.874
RSF0.849
Cox0.808

⚠️Top 10 Factores de Riesgo (Permutation Importance — RSF)

#1
nps_onboarding
NPS al finalizar onboarding · HR=0.972 por punto · efecto más fuerte identificado
0.312
#2
uso_semanal_medio
Sesiones/semana primeros 3 meses · umbral crítico: <2 sesiones/sem → HR×2.8
0.271
#3
plan
Plan Basic: HR=3.4 vs Enterprise · Plan Professional: HR=1.6 vs Enterprise
0.231
#4
integraciones
Cada integración adicional reduce hazard un 18% · >3 integraciones → cliente muy estable
0.194
#5
soporte_tickets
Tickets 30d iniciales · >3 tickets → HR=2.1 · indica fricción de adopción
0.168
#6
sector (nutricionista_freelance)
Freelancers: HR=2.9 vs clínica privada · segmento con mayor churn estructural
0.149
#7
n_usuarios
Cuentas con 1 usuario → HR=2.2 vs ≥5 usuarios · más usuarios = más stickiness
0.128
#8
sector (residencia)
Residencias: HR=1.8 · presupuestos anuales → mayor sensibilidad al precio
0.106
#9
dias_primer_login (derivada)
Clientes que hacen 1er login >3 días tras contratar: HR=1.6 · señal de onboarding débil
0.083
#10
mes_contratacion
Estacionalidad: contratos enero y septiembre con mayor retención (inicio ejercicio/curso)
0.059

🎯Segmentación de Clientes Actuales por Riesgo de Churn

Clasificación de los 888 clientes activos según score de riesgo predicho por GBS a 6 meses.

RIESGO BAJO
411
46.3% de clientes activos
P(churn 6m): <10%
Plan típico: Professional/Enterprise
NPS medio: 82
Integraciones: ≥3
Uso semanal: >4 sesiones/sem
Acción: Programa de advocacy + upsell. Invitar a beta de nuevas funcionalidades. NPS activo trimestral.
RIESGO MEDIO
298
33.6% de clientes activos
P(churn 6m): 10%–35%
Plan típico: Professional/Basic
NPS medio: 61
Integraciones: 1–2
Uso semanal: 2–4 sesiones/sem
Acción: Check-in de CS mensual. Ofrecer formación gratuita y webinars. Revisar adopción de features clave.
RIESGO ALTO
179
20.2% de clientes activos
P(churn 6m): >35%
Plan típico: Basic / Freelance
NPS medio: 38
Integraciones: 0–1
Uso semanal: <2 sesiones/sem
Acción URGENTE: Llamada de CS en 48h. Diagnóstico de fricción. Oferta de descuento o plan personalizado. Evaluar fit con producto.
Impacto económico estimado: Los 179 clientes de riesgo alto representan ~8.771 €/mes en MRR en riesgo. Recuperar el 30% con acciones proactivas supondría 2.631 €/mes adicionales de LTV protegido.

💻Código de Referencia — Pipeline Completo (scikit-survival)

# Pipeline completo: NutriTrack Pro — Análisis de Supervivencia de Churn # scikit-survival 0.23 · Python 3.11 import numpy as np import pandas as pd from sksurv.util import Surv from sksurv.ensemble import GradientBoostingSurvivalAnalysis, RandomSurvivalForest from sksurv.linear_model import CoxPHSurvivalAnalysis from sksurv.metrics import concordance_index_ipcw, integrated_brier_score from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.pipeline import Pipeline # 1. Preparar datos de supervivencia y = Surv.from_dataframe('churned', 'dias_cliente', df) X = df.drop(columns=['churned', 'dias_cliente']) X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42 ) # 2. Comparativa de modelos models = { 'Cox': Pipeline([('scaler', StandardScaler()), ('model', CoxPHSurvivalAnalysis())]), 'RSF': RandomSurvivalForest(n_estimators=200, random_state=42, n_jobs=-1), 'GBS': GradientBoostingSurvivalAnalysis( n_estimators=300, learning_rate=0.05, max_depth=4, random_state=42 ), } results = {} for name, model in models.items(): model.fit(X_train, y_train) risk_scores = model.predict(X_test) c_index = concordance_index_ipcw(y_train, y_test, risk_scores)[0] results[name] = {'c_index': c_index, 'model': model} print(f"{name}: C-index = {c_index:.3f}") # Salida esperada: # Cox: C-index = 0.784 # RSF: C-index = 0.819 # GBS: C-index = 0.847 ← ganador # 3. Segmentación de riesgo (clientes activos) best_model = results['GBS']['model'] active_clients = df[df['churned'] == 0].copy() X_active = active_clients.drop(columns=['churned', 'dias_cliente']) active_clients['risk_score'] = best_model.predict(X_active) active_clients['risk_segment'] = pd.cut( active_clients['risk_score'], bins=[-np.inf, -0.5, 0.5, np.inf], labels=['bajo', 'medio', 'alto'] ) print(active_clients['risk_segment'].value_counts()) # bajo 411 # medio 298 # alto 179

Conclusiones y Próximos Pasos

Hallazgos Clave

  • 🔴 NPS de onboarding es el predictor #1 de churn futuro
  • 🔴 Clientes con <2 sesiones/sem en primeros 3 meses tienen 2.8× más riesgo
  • 🟡 Freelancers y plan Basic concentran el 68% del riesgo alto
  • 🟢 Cada integración habilitada reduce el hazard un 18%
  • 🟢 Clientes Enterprise: supervivencia 24m estimada >70%

Próximos Pasos

  • 1. Desplegar GBS como API de scoring en producción
  • 2. Alerta automática CS cuando cliente entra en riesgo alto
  • 3. A/B test: intervención proactiva en riesgo medio
  • 4. Modelo de riesgos competitivos: churn vs downgrade
  • 5. Reentrenar modelo mensualmente con nuevos datos