Scénario de test & Cas d'usage
Données avec distribution à queue lourde (Pareto) et configuration de queue spécifique.
| 1 | |
| 2 | DATA work.copule_cata; |
| 3 | call streaminit(888); |
| 4 | DO i=1 to 10000; |
| 5 | u_eq = rand('Uniform'); |
| 6 | u_cyc = rand('Uniform'); |
| 7 | OUTPUT; |
| 8 | END; |
| 9 | |
| 10 | RUN; |
| 11 | |
| 12 | DATA work.sinistre_eq; |
| 13 | call streaminit(111); |
| 14 | DO i=1 to 500; |
| 15 | montant = rand('Pareto', 3, 100000); |
| 16 | OUTPUT; |
| 17 | END; |
| 18 | |
| 19 | RUN; |
| 20 | |
| 21 | DATA work.sinistre_cyc; |
| 22 | call streaminit(222); |
| 23 | DO i=1 to 500; |
| 24 | montant = rand('Pareto', 2.5, 150000); |
| 25 | OUTPUT; |
| 26 | END; |
| 27 | |
| 28 | RUN; |
| 29 | |
| 30 | PROC CAS; |
| 31 | upload path="work.copule_cata" casout={name="copule_cata", replace=true}; |
| 32 | upload path="work.sinistre_eq" casout={name="m_eq", replace=true}; |
| 33 | upload path="work.sinistre_cyc" casout={name="m_cyc", replace=true}; |
| 34 | |
| 35 | RUN; |
| 36 |
| 1 | |
| 2 | PROC CAS; |
| 3 | ecm.ecm / copulaSample={name="copule_cata"} tailStart=0.95 doExactFinalCount=true marginals={{TABLE={name="m_eq"}, sampleVarName="montant", idVarValue="u_eq"}, {TABLE={name="m_cyc"}, sampleVarName="montant", idVarValue="u_cyc"}} OUTPUT={outSample={name="res_cata", replace=true}} outsum={outSummary={name="stats_cata", replace=true}, percentiles={{percentile=99.9, variable="VaR_Extreme"}}}; |
| 4 | |
| 5 | RUN; |
| 6 |
L'action doit concentrer l'échantillonnage sur les 5% supérieurs de la distribution (tailStart=0.95). La table 'stats_cata' doit fournir une estimation précise de la VaR 99.9% pour ces événements rares.