countreg countregFitModel

Prévision des Ventes Produits Rares avec Sélection de Variables (Performance)

Scénario de test & Cas d'usage

Contexte Métier

Un grand distributeur analyse les ventes journalières de produits à faible rotation. Les données contiennent énormément de zéros (jours sans vente). Le dataset est large (nombreuses variables explicatives potentielles : météo, promos, jour semaine, etc.). L'objectif est d'utiliser un modèle à inflation de zéros (ZINB) tout en sélectionnant automatiquement les variables pertinentes via une méthode Stepwise pour optimiser la performance.
Préparation des Données

Simulation volumétrique (100 000 lignes) avec 20 variables prédictives (x1-x20) et une variable cible 'ventes' contenant 60% de zéros structurels.

Copié !
1 
2DATA mycas.ventes_retail;
3call streaminit(999);
4array x[20] x1-x20;
5DO i = 1 to 100000;
6DO j=1 to 20;
7x[j] = rand('Normal');
8END;
9IF rand('Uniform') < 0.6 THEN ventes = 0;
10ELSE ventes = rand('Poisson', exp(0.5 + 0.2*x1 - 0.1*x5));
11OUTPUT;
12END;
13 
14RUN;
15 

Étapes de réalisation

1
Ajustement d'un modèle ZINB avec sélection de variables (Stepwise) basée sur le critère SBC.
Copié !
1 
2PROC CAS;
3countreg.countregFitModel / TABLE={name='ventes_retail'}, model={depVars={{name='ventes'}}, effects={{vars={'x1','x2','x3','x4','x5','x6','x10','x15','x20'}}}}, zeromodel={effects={{vars={'x1', 'x2'}}}}, modelOptions={modelType='ZINB'}, selection={method='STEPWISE', criterion='SBC'};
4 
5RUN;
6 

Résultat Attendu


L'action doit gérer la volumétrie sans erreur mémoire. L'algorithme de sélection doit retenir uniquement les variables significatives (ex: x1, x5) et exclure le bruit (x10, x20), tout en ajustant correctement la partie inflation de zéros.