pca eig

Scoring de Risque Bancaire avec Pondération et Génération de Code

Scénario de test & Cas d'usage

Contexte Métier

Une banque développe un score de risque. Les variables (Revenu vs Ratio Dette) ont des échelles très différentes et doivent être standardisées. De plus, certaines transactions sont plus importantes et nécessitent une pondération (variable 'weight'). Le modèle final doit être exporté sous forme de code Data Step pour être intégré dans un système legacy mainframe.
Préparation des Données

Données bancaires avec échelles hétérogènes et une variable de poids.

Copié !
1 
2DATA casuser.risk_data;
3call streaminit(42);
4DO loan_id = 1 to 2000;
5income = rand('LogNormal', 10, 0.5);
6debt_ratio = rand('Uniform');
7open_lines = rand('Integer', 0, 20);
8wgt_transaction = rand('Uniform', 0.5, 1.5);
9OUTPUT;
10END;
11 
12RUN;
13 

Étapes de réalisation

1
ACP avec standardisation (corrélation forcée sur échelles différentes), pondération et génération de code.
Copié !
1 
2PROC CAS;
3pca.eig / TABLE={name="risk_data"} inputs={"income", "debt_ratio", "open_lines"} weight="wgt_transaction" std=true code={casOut={name="scoring_code", replace=true}};
4 
5RUN;
6 
2
Affichage du code SAS généré.
Copié !
1PROC CAS; TABLE.fetch / TABLE="scoring_code"; RUN;

Résultat Attendu


L'analyse tient compte de la variable de poids 'wgt_transaction'. Les variables sont centrées-réduites avant l'analyse (std=True). Une table 'scoring_code' est produite contenant le code SAS (texte) permettant de reproduire le calcul des scores PCA hors de CAS.