copula copulaSimulate

Portfolio-Risikoanalyse mit T-Copula und empirischen Rändern

Scénario de test & Cas d'usage

Geschäftskontext

Eine Bank möchte das gemeinsame Risiko zweier volatiler Aktien (Asset_A und Asset_B) modellieren. Da Finanzmarktdaten oft 'Heavy Tails' (extreme Ereignisse) aufweisen, ist eine Normalverteilung unzureichend. Das Team verwendet eine T-Copula mit niedrigen Freiheitsgraden (df=4), um Marktcrashs zu simulieren, basierend auf historischen Korrelationen und realen Randverteilungen.
Datenaufbereitung

Erstellung einer historischen Korrelationsmatrix und eines Datensatzes mit vergangenen Renditen für die empirischen Ränder.

Kopiert!
1 
2DATA casuser.corrmat_finance;
3INPUT _type_ $ _name_ $ Asset_A Asset_B;
4DATALINES;
5corr Asset_A 1.0 0.6 corr Asset_B 0.6 1.0 ;
6 
7RUN;
8 
9DATA casuser.historical_returns;
10DO i = 1 to 500;
11Asset_A = rand('T', 4);
12Asset_B = rand('T', 4) * 0.5 + Asset_A * 0.5;
13OUTPUT;
14END;
15 
16RUN;
17 

Étapes de réalisation

1
Laden der Daten in den Speicher (implizit durch Data Step in CASUSER).
Kopiert!
1/* Daten sind bereits in casuser vorhanden */
2
Ausführung der Simulation mit T-Copula (df=4) und Generierung empirischer Ränder basierend auf historischen Daten.
Kopiert!
1 
2PROC CAS;
3copula.copulaSimulate / TABLE={name='historical_returns', caslib='casuser'}, define={copulaType='T', df=4, corrTable={name='corrmat_finance', caslib='casuser'}}, ndraws=1000, seed=999, var={'Asset_A', 'Asset_B'}, outempirical={name='simulated_risk_scenarios', caslib='casuser', replace=true};
4 
5RUN;
6 
7QUIT;
8 

Erwartetes Ergebnis


Eine Tabelle 'simulated_risk_scenarios' wird erstellt. Sie enthält 1000 Beobachtungen, die die Korrelationsstruktur der Eingabematrix und die 'Heavy Tails' der T-Verteilung widerspiegeln, transformiert auf die Skala der historischen Daten.