countreg countregFitModel

Análisis de Conversión Web con Exceso de Ceros y Selección de Variables

Scénario de test & Cas d'usage

Contexto empresarial

Un sitio de comercio electrónico analiza el número de artículos comprados por sesión. La mayoría de las sesiones terminan sin compra (0 artículos), lo que requiere un modelo Inflado de Ceros (Zero-Inflated). Además, se dispone de muchas métricas de navegación y se necesita identificar cuáles son relevantes.
Preparación de datos

Creación de un gran conjunto de datos (50,000 sesiones) con muchas variables de ruido para probar la selección y el exceso de ceros.

¡Copiado!
1 
2DATA casuser.trafico_web;
3call streaminit(999);
4DO session_id=1 to 50000;
5tiempo_sitio = rand('Exponential', 5);
6paginas_vistas = floor(rand('LogNormal', 2, 0.5));
7dispositivo_movil = rand('Bernoulli', 0.6);
8publicidad = rand('Bernoulli', 0.2);
9var_ruido1 = rand('Uniform');
10var_ruido2 = rand('Normal');
11/* Modelo de ceros: Si es poco tiempo, probabilidad alta de ser cero absoluto */ prob_cero = 1 / (1 + exp(-2 + 0.5*tiempo_sitio));
12IF rand('Uniform') < prob_cero THEN compras = 0;
13ELSE compras = rand('Poisson', 0.5 + 0.1*paginas_vistas + 0.3*publicidad);
14OUTPUT;
15END;
16 
17RUN;
18 

Étapes de réalisation

1
Ejecución de un modelo ZIP (Zero-Inflated Poisson) con selección de variables 'STEPWISE'.
¡Copiado!
1PROC CAS;
2 countreg.countregFitModel /
3 TABLE={name='trafico_web', caslib='casuser'},
4 model={depVars={{name='compras'}},
5 effects={{vars={'tiempo_sitio', 'paginas_vistas', 'dispositivo_movil', 'publicidad', 'var_ruido1', 'var_ruido2'}}},
6 modeloptions={modeltype='ZIP'}},
7 zeromodel={effects={{vars={'tiempo_sitio', 'dispositivo_movil'}}}},
8 selection={method='STEPWISE', details=true};
9RUN;

Resultado esperado


El modelo debe identificar correctamente que 'var_ruido1' y 'var_ruido2' no son significativas y eliminarlas. Debe ajustar dos conjuntos de parámetros: uno para el conteo (Poisson) y otro para la probabilidad de cero (Logit).