copula

copulaFit

##set_copula

Description

L'action %copulaFit% de l'action setGemini said

Groupe logique de fonctionnalités CAS (Cloud Analytic Services) contenant des actions spécifiques (statistiques, data mining, etc.) pour traiter les données en mémoire de manière optimisée.
%Copula Modeling% est l'outil ultime pour les statisticiens qui veulent comprendre comment leurs 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. « dansent » ensemble. Elle permet d'estimer les paramètres de diverses copules (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., Normale ou T) pour modéliser la structure de dépendance 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., indépendamment de leurs distributions marginales. C'est un peu comme une agence de rencontre pour données : on regarde comment elles s'entendent sans se soucier de leur origine individuelle !

Syntaxe Officielle
copula.copulaFit <result=results> <status=rc> /
copulatype="CLAYTON" | "FRANK" | "GUMBEL" | "NORMAL" | "T",
table={caslib="string", name="table-name", where="where-expression"},
var={"string-1", "string-2", ...},
marginals="EMPIRICAL" | "UNIFORM",
method="CAL" | "MLE",
outpseudo={name="table-name", replace=TRUE},
optimizer={algorithm="QUASINEWTON", maxit=500},
plot={scatter=TRUE, marginals=TRUE}

Paramètres Clés

Nom du paramètre Description
copulatype Définit le modèle de dépendance : 'CLAYTON', 'FRANK', 'GUMBEL' (Archimédiennes), 'NORMAL' ou 'T' (Elliptiques).
table La table CAS contenant vos données d'observation.
var La liste des variables numériques à inclure dans la modélisation de la copule.
marginals Spécifie si les marginales sont traitées comme uniformes ou estimées de manière empirique (par défaut).
method Méthode d'estimation : 'MLE' (Maximum de vraisemblance) ou 'CAL' (Calibration via le tau de Kendall).
outpseudo Table de sortie pour stocker les pseudo-observations (données transformées en rangs uniformes).
optimizer Un sous-ensemble de paramètres pour piloter l'algorithme d'optimisation (itérations, technique, tolérance).
store Permet de sauvegarder le modèle complet dans un item store pour une utilisation future avec 'copulaSimulate'.

Préparation des données

Création de données corrélées pour test

Génère deux variables avec une dépendance non linéaire pour tester la copule.

1DATA casuser.test_copula;
2 DO i = 1 to 1000;
3 u = rand('Uniform');
4 v = rand('Uniform');
5 /* Introduction d'une dépendance simple */
6 x = u;
7 y = (u + v) / 2;
8 OUTPUT;
9 END;
10 drop i u v;
11RUN;

Exemples d'utilisation

Estimation simple d'une copule de Clayton

On estime le paramètre theta pour une copule de Clayton avec des marginales empiriques.

1PROC CAS;
2 copula.copulaFit /
3 TABLE={name='test_copula'},
4 var={'x', 'y'},
5 copulatype='CLAYTON',
6 method='MLE';
7RUN;
Résultat Attendu :
Un tableau récapitulatif avec l'estimation du paramètre de la copule (Theta).
Modélisation complète avec optimisation et sortie pseudo-observations

Utilisation d'une copule de Student (T), calcul des pseudo-observations, et configuration avancée de l'optimiseur.

1PROC CAS;
2 copula.copulaFit /
3 TABLE={name='test_copula'},
4 var={'x', 'y'},
5 copulatype='T',
6 method='MLE',
7 df=4,
8 outpseudo={name='pseudo_data', replace=true},
9 optimizer={algorithm='QUASINEWTON', maxit=100, gtol=1e-6},
10 plot={scatter=true, tail=true},
11 store={name='my_copula_model', replace=true};
12RUN;
Résultat Attendu :
Estimation des paramètres (corrélation et degrés de liberté), création de la table 'pseudo_data' et sauvegarde du modèle dans 'my_copula_model'.