copulaSimulate
Description
L'action copulaSimulate est l'outil ultime pour les architectes de données souhaitant simuler des dépendances complexes entre variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage.. Plutôt que de se limiter à des corrélations linéairesMesure de l'intensité et du sens de la relation proportionnelle entre deux variables. Un coefficient proche de 1 ou -1 indique une dépendance directe forte représentable par une droite. classiques, cette action permet de générer des données synthétiques suivant des structures de dépendance spécifiques (Normal, T, ClaytonFamille de copules archimédiennes utilisée pour modéliser des dépendances asymétriques fortes dans les queues de distribution inférieures, cruciale pour l'analyse des risques de défauts simultanés., FrankCopule archimédienne symétrique modélisant une dépendance équilibrée entre les queues de distribution. Idéale pour les variables ne présentant pas de corrélation extrême (haute ou basse)., GumbelCopule archimédienne modélisant une dépendance forte dans la queue supérieure. Elle est cruciale en gestion des risques pour analyser la corrélation entre des événements extrêmes simultanés.). C'est un peu comme créer un univers parallèle où vos variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. se comportent exactement comme vous l'avez prédit, sans les caprices du monde réel ! Elle est particulièrement utile pour les tests de stress financiers ou les simulations de Monte CarloMéthode utilisant l'échantillonnage aléatoire répété pour estimer la distribution de probabilité de résultats incertains et évaluer les risques ou la variabilité d'un système complexe. où la structure de queue est critique.
Paramètres Clés
Préparation des données
Préparation d'une matrice de corrélation
Avant de simuler une copule Normale, nous devons fournir une structure de corrélation sous forme de table CAS.
| 1 | DATA mycas.mat_corr; |
| 2 | INPUT _name_ $ x1 x2 x3; |
| 3 | DATALINES; |
| 4 | x1 1.0 0.5 0.2 |
| 5 | x2 0.5 1.0 0.3 |
| 6 | x3 0.2 0.3 1.0 |
| 7 | ; |
| 8 | RUN; |
Exemples d'utilisation
Simulation d'une copule Normale avec marges uniformes
Génère 5000 observations basées sur une matrice de corrélation Pearson pré-existante.
| 1 | PROC CAS; |
| 2 | copula.copulaSimulate / |
| 3 | define={copulatype="NORMAL", corrtable="mat_corr"}, |
| 4 | ndraws=5000, |
| 5 | seed=12345, |
| 6 | outuniform={name="sim_uniform", replace=true}; |
| 7 | RUN; |
Résultat Attendu :
Simulation Clayton avec marges empiriques et approximation fine
Ici, on utilise une copule de Clayton (souvent utilisée pour modéliser la dépendance en cas de krach boursier) et on projette les résultats sur les distributions réelles d'une table existante.
| 1 | PROC CAS; |
| 2 | copula.copulaSimulate / |
| 3 | TABLE="donnees_historiques", |
| 4 | var={"ret_action1", "ret_action2"}, |
| 5 | define={copulatype="CLAYTON", theta=1.5}, |
| 6 | ndraws=10000, |
| 7 | seed=98765, |
| 8 | outempirical={name="sim_empirique", replace=true}, |
| 9 | margApproxOpts={algorithm="BIN", interpolation="MONOCUBIC", maxiters=20}; |
| 10 | RUN; |