Scénario de test & Cas d'usage
Modèles d'arbres de régression additive bayésienne.
Découvrir toutes les actions de bartCréation d'une table d'entraînement `credit_train` sans valeurs manquantes pour entraîner un modèle `bartGauss`. Création d'une table `demandes_credit_score` contenant des valeurs manquantes (`.`) pour des prédicteurs clés comme `revenu_mensuel` et `ratio_endettement`.
| 1 | DATA credit_train; |
| 2 | call streaminit(333); |
| 3 | DO id_demande = 1 to 3000; |
| 4 | age_demandeur = 22 + rand('integer', 40); |
| 5 | revenu_mensuel = 1500 + rand('integer', 5000); |
| 6 | ratio_endettement = rand('uniform') * 0.6; |
| 7 | montant_demande = 5000 + rand('integer', 25000); |
| 8 | score_risque = 300 + (ratio_endettement * 200) - (revenu_mensuel / 100) + (age_demandeur / 2) + rand('normal', 20); |
| 9 | OUTPUT; |
| 10 | END; |
| 11 | RUN; |
| 12 | DATA demandes_credit_score; |
| 13 | call streaminit(444); |
| 14 | DO id_demande = 3001 to 3100; |
| 15 | age_demandeur = 22 + rand('integer', 40); |
| 16 | revenu_mensuel = 1500 + rand('integer', 5000); |
| 17 | ratio_endettement = rand('uniform') * 0.6; |
| 18 | montant_demande = 5000 + rand('integer', 25000); |
| 19 | score_risque_reel = 300 + (ratio_endettement * 200) - (revenu_mensuel / 100) + (age_demandeur / 2); |
| 20 | IF mod(_n_, 7) = 0 THEN call missing(revenu_mensuel); |
| 21 | IF mod(_n_, 10) = 0 THEN call missing(ratio_endettement); |
| 22 | OUTPUT; |
| 23 | END; |
| 24 | RUN; |
| 25 | PROC CAS; |
| 26 | load DATA=CASUSER.credit_train outcaslib="casuser" casout="credit_train" replace; |
| 27 | load DATA=CASUSER.demandes_credit_score outcaslib="casuser" casout="demandes_credit_score" replace; |
| 28 | bart.bartGauss TABLE={name='credit_train'}, |
| 29 | model={depVars={{name='score_risque'}}, effects={{vars={'age_demandeur', 'revenu_mensuel', 'ratio_endettement', 'montant_demande'}}}}, |
| 30 | store={name='risk_model', replace=true}; |
| 31 | RUN; |
| 32 | QUIT; |
| 1 | PROC CAS; |
| 2 | bart.bartScore TABLE={name='demandes_credit_score'}, |
| 3 | restore={name='risk_model'}, |
| 4 | pred='Score_Risque_Predit', |
| 5 | resid='Residu', |
| 6 | copyVars={'id_demande', 'revenu_mensuel', 'ratio_endettement', 'score_risque_reel'}, |
| 7 | casOut={name='credit_scores_output', replace=true}; |
| 8 | RUN; |
| 9 | QUIT; |
L'action `bartScore` doit s'exécuter avec succès sans rejeter les lignes avec des valeurs manquantes. La table de sortie `credit_scores_output` doit contenir une prédiction (`Score_Risque_Predit`) pour chaque demande, y compris celles avec des données incomplètes. Les variables copiées permettront de confirmer que les lignes avec des valeurs manquantes ont bien été scorées.