?>Array ( [lang] => fr [id] => 175 )
Scénario de test & Cas d'usage
Création d'une table de clients avec des profils variés pour tester la fonction de scoring.
| 1 | DATA clients_entree; |
| 2 | INPUT ID_CLIENT AGE REVENU_ANNUEL RATIO_ENDETTEMENT; |
| 3 | DATALINES; |
| 4 | 101 25 35000 0.45 |
| 5 | 102 45 80000 0.20 |
| 6 | 103 62 120000 0.15 |
| 7 | 104 31 45000 0.60 |
| 8 | 105 50 95000 0.30 |
| 9 | ; |
| 10 | RUN; |
| 1 | PROC casutil; |
| 2 | load DATA=clients_entree outcaslib='CASUSER' casout='CLIENTS_CAS' replace; |
| 3 | QUIT; |
| 1 | PROC 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}; |
| 14 | QUIT; |
| 1 | PROC 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;'; |
| 7 | QUIT; |
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).