phreg cox

Predicción de Abandono (Churn) Masivo con Selección de Variables LASSO

Scénario de test & Cas d'usage

Contexto empresarial

Un operador de telecomunicaciones tiene una base de datos masiva de clientes con cientos de métricas de comportamiento (minutos usados, datos, quejas, antigüedad, etc.). Quieren identificar qué factores influyen más en el tiempo hasta que un cliente se da de baja (Churn), descartando el ruido mediante técnicas de regularización avanzadas.
Preparación de datos

Generación de alto volumen (simulado) con múltiples covariables para probar rendimiento y selección.

¡Copiado!
1DATA mycas.telco_churn;
2 call streaminit(999);
3 array vars[20] x1-x20;
4 DO id = 1 to 50000;
5 DO j=1 to 20; vars[j] = rand('NORMAL'); END;
6 /* Solo x1, x5 y x10 afectan realmente al riesgo */
7 Risk = exp(0.5*x1 - 0.3*x5 + 0.8*x10);
8 Tenure = rand('WEIBULL', 1.5) * 100 / Risk;
9 Churn = (rand('UNIFORM') > 0.3);
10 OUTPUT;
11 END;
12RUN;

Étapes de réalisation

1
Ajuste del modelo utilizando selección LASSO para filtrar las 20 variables simuladas.
¡Copiado!
1PROC CAS;
2 phreg.cox /
3 TABLE={name='telco_churn'},
4 model={depVars={{name='Tenure', event='Churn(0)'}}, effects={{vars={'x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x9', 'x10', 'x11', 'x12', 'x13', 'x14', 'x15', 'x16', 'x17', 'x18', 'x19', 'x20'}}}},
5 selection={method='LASSO', choose='SBC', stop='SBC'};
6RUN;

Resultado esperado


El modelo debe procesar el gran volumen de datos eficientemente. El algoritmo LASSO debe identificar correctamente que 'x1', 'x5' y 'x10' son las variables relevantes, estableciendo los coeficientes de las otras variables (ruido) a cero o cerca de cero en la tabla de resultados de selección.