ecm

ecm

##set_ecm

Description

L'action ecm (Economic Capital ModelingCalcul du capital nécessaire pour couvrir les risques (solvabilité) avec un niveau de confiance donné, en modélisant les pertes potentielles via des simulations (ex: Monte Carlo ou stress tests).) est l'outil ultime pour les gestionnaires de risques souhaitant consolider les pertes de différentes lignes métier. Elle crée un échantillon de la perte totale de l'entreprise en combinant intelligemment une simulation de copuleTechnique modélisant la structure de dépendance entre variables aléatoires indépendamment de leurs lois marginales, permettant de simuler des scénarios corrélés complexes et des risques joints. (qui gère les dépendances) avec les distributions empiriques marginales des pertes. C'est un peu comme préparer un cocktail de risques : la copule est la recette de mélange, et les marginales sont vos ingrédients de base. Le résultat vous donne une vision claire du capital économique nécessaire pour éponger les futures pertes potentielles.

Syntaxe Officielle
ecm.ecm /
analysisVariables={"variable-1", ...},
bodySampleFrac=double,
copulaSample={caslib="string", name="table-name", ...},
marginals={{table={name="table"}, idVarValue="var", ...}},
output={outSample={name="table"}, varName="string", ...},
outsum={outSummary={name="table"}, percentiles={{percentile=val}, ...}, ...}

Paramètres Clés

Nom du paramètre Description
analysisVariables Spécifie les variables marginales à analyser, qui doivent être présentes dans la table de simulation de copule.
bodySampleFrac Fraction des points à échantillonner dans le 'corps' de la distribution (les bins non situés dans la queue).
copulaSample La table d'entrée contenant la simulation de la copule avec des marges uniformes (généralement produite par l'action copulaSimulate).
marginals Liste des tables contenant les échantillons empiriques pour chaque ligne métier.
output Détails de la table de sortie pour l'échantillon de perte totale généré.
outsum Configuration de la table de statistiques descriptives, incluant les percentiles et la TVaR (Tail Value-at-Risk).
tailStart Définit le seuil (valeur de l'EDF) à partir duquel commence la 'queue' de la distribution (par défaut 0.8).

Préparation des données

Préparation des simulations de risques

Nous simulons ici deux lignes de pertes (L1 et L2) et une structure de dépendance via une copule uniforme pour alimenter l'action ECM.

1PROC CAS;
2 /* Simulation simplifiée des marginales */
3 DATA step_l1; DO i=1 to 1000; loss_l1 = rand('Lognormal', 5, 1); OUTPUT; END; RUN;
4 DATA step_l2; DO i=1 to 1000; loss_l2 = rand('Lognormal', 4, 1.5); OUTPUT; END; RUN;
5 upload DATA=step_l1 casout={name='marg_l1', replace=true};
6 upload DATA=step_l2 casout={name='marg_l2', replace=true};
7 /* Simulation simplifiée d'une copule (uniforme) */
8 DATA step_cop; DO i=1 to 10000; u1 = rand('Uniform'); u2 = rand('Uniform'); OUTPUT; END; RUN;
9 upload DATA=step_cop casout={name='copula_sim', replace=true};
10RUN;

Exemples d'utilisation

Calcul basique de la perte totale

Cet exemple combine une simulation de copule avec deux distributions marginales pour obtenir la perte agrégée.

1PROC CAS; ecm.ecm / copulaSample={name='copula_sim'} marginals={{TABLE={name='marg_l1'}, idVarValue='u1', sampleVarName='loss_l1'}, {TABLE={name='marg_l2'}, idVarValue='u2', sampleVarName='loss_l2'}} OUTPUT={outSample={name='total_loss_sample', replace=true}}; RUN;
Résultat Attendu :
Une table CAS 'total_loss_sample' contenant l'échantillon de la perte totale combinée.
Analyse complète avec Queue de Distribution et TVaR

Utilisation avancée incluant le calcul de la Tail Value-at-Risk (TVaR) à 95% et 99%, ainsi que des statistiques de résumé pour les décisions de capital.

1PROC CAS; ecm.ecm / analysisVariables={'u1', 'u2'} copulaSample={name='copula_sim'} marginals={{TABLE={name='marg_l1'}, idVarValue='u1', sampleVarName='loss_l1'}, {TABLE={name='marg_l2'}, idVarValue='u2', sampleVarName='loss_l2'}} tailStart=0.95 edfAccuracy=1e-6 OUTPUT={outSample={name='full_ecm_out', replace=true}, varName='Perte_Totale'} outsum={outSummary={name='ecm_stats', replace=true}, summaryStatistics={{statistic='MEAN'}, {statistic='STDDEV'}}, percentiles={{percentile=95}, {percentile=99}}, tVaRLevels={{percentileLevel=95}, {percentileLevel=99}}, pctlPrefix='Pct_', tVaRPrefix='TVaR_'}; RUN;
Résultat Attendu :
Une table 'ecm_stats' avec la moyenne, l'écart-type, les percentiles critiques et les TVaR demandées pour évaluer les scénarios extrêmes.