Scénario de test & Cas d'usage
Analyse d'inférence causale et estimation d'effets.
Découvrir toutes les actions de causalanalysisCréation d'un jeu de données où certains clients ont une probabilité de traitement < 0.01, entraînant des poids > 100.
| 1 | |
| 2 | DATA casuser.pricing_edge; |
| 3 | call streaminit(777); |
| 4 | DO i = 1 to 200; |
| 5 | segment_fidelite = rand('Integer', 1, 10); |
| 6 | /* Fidelite 10 = quasi toujours Premium */ IF segment_fidelite = 10 THEN prob_premium = 0.995; |
| 7 | ELSE prob_premium = 0.5; |
| 8 | prob_standard = 1 - prob_premium; |
| 9 | IF rand('Uniform') < prob_premium THEN prix = 'Premium'; |
| 10 | ELSE prix = 'Standard'; |
| 11 | /* Ventes */ ventes = 100 + 10*segment_fidelite; |
| 12 | IF prix='Premium' THEN ventes = ventes + 20; |
| 13 | pred_y_prem = 100 + 10*segment_fidelite + 20; |
| 14 | pred_y_std = 100 + 10*segment_fidelite; |
| 15 | OUTPUT; |
| 16 | END; |
| 17 | |
| 18 | RUN; |
| 19 |
| 1 | |
| 2 | PROC CAS; |
| 3 | causalanalysis.caEffect / TABLE={name='pricing_edge'}, treatVar={name='prix'}, outcomeVar={name='ventes', type='CONTINUOUS'}, method='TMLE', scaledIPWFlag=5, /* Seuil bas pour dclencher l'alerte sur les poids > 5x la moyenne */ pom=[ {trtLev='Standard', trtProb='prob_standard', predOut='pred_y_std'}, {trtLev='Premium', trtProb='prob_premium', predOut='pred_y_prem'} ]; |
| 4 | |
| 5 | RUN; |
| 6 |
L'action doit s'exécuter mais générer des avertissements dans le journal (Log) ou marquer les observations concernant les poids élevés (scaled weights), car les clients fidèles ont des poids inverses très grands pour le traitement 'Standard'. La méthode TMLE doit tenter de corriger le biais résiduel.