Scénario de test & Cas d'usage
Erstellung von Daten mit extremen Ausreißern (Fat Tails).
| 1 | |
| 2 | DATA casuser.copula_audit; |
| 3 | call streaminit(999); |
| 4 | DO i=1 to 2000; |
| 5 | u_main=rand('uniform'); |
| 6 | OUTPUT; |
| 7 | END; |
| 8 | |
| 9 | RUN; |
| 10 | |
| 11 | DATA casuser.marg_fat_tail; |
| 12 | call streaminit(999); |
| 13 | DO i=1 to 2000; |
| 14 | IF rand('uniform') > 0.98 THEN val=rand('pareto', 2)*10000; |
| 15 | ELSE val=rand('normal', 100, 10); |
| 16 | OUTPUT; |
| 17 | END; |
| 18 | |
| 19 | RUN; |
| 20 |
| 1 | |
| 2 | PROC CAS; |
| 3 | ecm.ecm / copulaSample={name="copula_audit"} marginals={{TABLE={name="marg_fat_tail"}, sampleVarName="val"}} tailStart=0.90 tailEDFAccuracy=1.0E-5 doExactFinalCount=TRUE OUTPUT={outSample={name="audit_trace", replication=1}, varName="AuditLoss"} seed=55555; |
| 4 | |
| 5 | RUN; |
| 6 |
| 1 | |
| 2 | PROC CAS; |
| 3 | ecm.ecm / copulaSample={name="copula_audit"} marginals={{TABLE={name="marg_fat_tail"}, sampleVarName="val"}} tailStart=0.90 tailEDFAccuracy=1.0E-5 doExactFinalCount=TRUE OUTPUT={outSample={name="audit_trace_v2", replication=1}, varName="AuditLoss"} seed=55555; |
| 4 | |
| 5 | RUN; |
| 6 |
Beide Ausführungen müssen exakt identische Ergebnistabellen liefern (validierbar durch Hash-Vergleich), da 'seed=55555' fixiert ist. Die Parameter 'tailEDFAccuracy' und 'doExactFinalCount=TRUE' erzwingen eine hochpräzise Berechnung der extremen Verluste im oberen 10%-Bereich.