bart bartProbit

Scénario Performance : Analyse de Risque de Crédit sur un Grand Volume de Données

Scénario de test & Cas d'usage

Contexte Métier

Une institution financière doit évaluer le risque de défaut de paiement pour un portefeuille de 200 000 prêts. Le temps de calcul est un facteur critique. Ce test vise à évaluer la performance de l'action `bartProbit` sur un grand jeu de données et à s'assurer que l'entraînement du modèle peut être limité dans le temps.
À propos du Set : bart

Modèles d'arbres de régression additive bayésienne.

Découvrir toutes les actions de bart
Préparation des Données

Génération d'une table volumineuse (200 000 observations) simulant des demandes de prêt avec une variable cible binaire 'defaut_paiement'.

Copié !
1DATA casuser.CreditRisk_Large_fr;
2 call streaminit(789);
3 DO i = 1 to 200000;
4 score_credit = 300 + floor(rand('Uniform') * 550);
5 revenu_emprunteur = 20000 + floor(rand('Uniform') * 180000);
6 montant_pret = 10000 + floor(rand('Uniform') * 90000);
7 duree_pret_mois = 12 + floor(rand('Uniform') * 60);
8 
9 z = -1.5 - (score_credit / 200) + (revenu_emprunteur / 100000) + (montant_pret / 50000) + (duree_pret_mois / 24);
10 prob_defaut = cdf('Normal', z);
11 IF rand('Uniform') < prob_defaut THEN defaut_paiement = 1;
12 ELSE defaut_paiement = 0;
13 
14 OUTPUT;
15 END;
16RUN;

Étapes de réalisation

1
Chargement de la table volumineuse dans la session CAS.
Copié !
1 
2PROC CASUTIL;
3load
4DATA=casuser.CreditRisk_Large_fr casout='CreditRisk_Large_fr' replace;
5QUIT;
6 
2
Exécution de bartProbit avec un nombre d'arbres élevé (nTree=250) et une limite de temps d'entraînement de 5 minutes (300 secondes) pour tester la performance et le paramètre `maxTrainTime`.
Copié !
1PROC CAS;
2 bart.bartProbit TABLE={name='CreditRisk_Large_fr'},
3 target='defaut_paiement',
4 inputs={'score_credit', 'revenu_emprunteur', 'montant_pret', 'duree_pret_mois'},
5 nTree=250,
6 nBI=1000,
7 nMC=2000,
8 maxTrainTime=300,
9 seed=987;
10RUN;
11QUIT;

Résultat Attendu


L'action doit terminer son exécution en moins de 300 secondes, même si toutes les itérations MCMC ne sont pas complétées. Le log SAS indiquera si l'entraînement a été arrêté en raison de la limite de temps. Les résultats du modèle, bien que potentiellement non optimaux, sont générés, prouvant que le paramètre `maxTrainTime` fonctionne correctement pour contrôler le temps d'exécution sur de grands volumes.