fcmpact addRoutines

Cas Standard : Déploiement d'une fonction de scoring métier

Scénario de test & Cas d'usage

Contexte Métier

Une banque de détail souhaite calculer un score de risque de crédit personnalisé pour ses clients. La fonction, nommée `CALCUL_RISQUE_V1`, prend en compte l'âge du client, son revenu annuel et son niveau d'endettement. L'objectif est de déployer cette logique métier sur le serveur CAS pour l'utiliser dans des DATA steps à grande échelle.
À propos du Set : fcmpact

Exécution de fonctions SAS FCMP dans l'environnement CAS.

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

Création d'une table de clients avec des profils variés pour tester la fonction de scoring.

Copié !
1DATA clients_entree;
2 INPUT ID_CLIENT AGE REVENU_ANNUEL RATIO_ENDETTEMENT;
3 DATALINES;
4101 25 35000 0.45
5102 45 80000 0.20
6103 62 120000 0.15
7104 31 45000 0.60
8105 50 95000 0.30
9;
10RUN;

Étapes de réalisation

1
Chargement de la table des clients dans la caslib CASUSER.
Copié !
1 
2PROC CASUTIL;
3load
4DATA=clients_entree outcaslib='CASUSER' casout='CLIENTS_CAS' replace;
5QUIT;
6 
2
Compilation et ajout de la fonction de scoring `CALCUL_RISQUE_V1` dans un package `finance_scoring`.
Copié !
1PROC CAS;
2 fcmpact.addRoutines /
3 routineCode = {
4 'function calcul_risque_v1(age, revenu, dette);
5 score = 0;
6 if (age < 30) then score = score + 20;
7 if (revenu < 40000) then score = score + 15;
8 score = score + (dette * 100);
9 return(score);
10 endsub;'
11 },
12 package = 'finance_scoring',
13 funcTable = {name='fonctions_risque', caslib='CASUSER', replace=true};
14QUIT;
3
Utilisation de la fonction `CALCUL_RISQUE_V1` dans un DATA step CAS pour calculer le score de chaque client.
Copié !
1PROC CAS;
2 datastep.runCode /
3 code = 'data CASUSER.CLIENTS_SCORES;
4 set CASUSER.CLIENTS_CAS;
5 score_risque = calcul_risque_v1(AGE, REVENU_ANNUEL, RATIO_ENDETTEMENT);
6 run;';
7QUIT;

Résultat Attendu


La table `CLIENTS_SCORES` est créée dans la caslib `CASUSER`. Elle contient les colonnes originales plus une nouvelle colonne `score_risque` dont les valeurs sont correctement calculées en appliquant la logique de la fonction FCMP (par exemple, pour le client 101, le score devrait être 20 + 15 + 45 = 80).