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
Enterprise
Professional
Basic
Freelance
KM por NPS de Onboarding
El NPS inicial predice fuertemente el tiempo de retención
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
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.11import numpy as np
import pandas as pd
from sksurv.util importSurvfrom sksurv.ensemble importGradientBoostingSurvivalAnalysis, RandomSurvivalForestfrom sksurv.linear_model importCoxPHSurvivalAnalysisfrom sksurv.metrics import concordance_index_ipcw, integrated_brier_score
from sklearn.model_selection import train_test_split
from sklearn.preprocessing importStandardScalerfrom sklearn.pipeline importPipeline# 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