copula

copulaFit

Description

L'action copulaFit estime les paramètres pour un type de copule spécifié. Elle est utile pour modéliser la structure de dépendance entre plusieurs variables aléatoires indépendamment de leurs distributions marginales.

copula.copulaFit / copulatype="CLAYTON"|"FRANK"|"GUMBEL"|"NORMAL"|"T", table={name='<table-name>' <, ...>}, var={'<variable-1>' <, '<variable-2>', ...>}, <corrtable={<castable>}>, <df=<double>>, <display={<displayTables>}>, <initialvalues={'<string-1>' <, '<string-2>', ...>}>, <KendallCorrtable={<castable>}>, <margApproxOpts={<margApproxOpts>}>, <marginals="EMPIRICAL"|"UNIFORM">, <method="CAL"|"MLE">, <name='<string>'>, <optimizer={<optimizerOpts>}>, <outpseudo={<casouttable>}>, <outputTables={<outputTables>}>, <plot={<plots>}>, <store={<casouttable>}>, <theta=<double>>, <tolerance=<double>>, <varSummary=TRUE|FALSE>;
Paramètres
ParamètreDescription
copulatypeSpécifie le type de la copule à estimer. Les types disponibles incluent les copules archimédiennes (CLAYTON, FRANK, GUMBEL) et elliptiques (NORMAL, T).
tableSpécifie la table de données d'entrée contenant les variables à analyser.
varSpécifie la liste des noms de variables pour l'ajustement de la copule.
corrtableSpécifie la table de données qui contient la matrice des corrélations de Pearson à utiliser lors de l'ajustement d'une copule t.
dfSpécifie une valeur initiale pour les degrés de liberté (df) lors de l'ajustement d'une copule t.
displaySpécifie la liste des tables de résultats à créer. Si omis, toutes les tables sont générées.
initialvaluesFournit les valeurs initiales pour l'optimisation numérique. Pour les copules archimédiennes, les valeurs initiales sont calculées par la méthode de calibration.
KendallCorrtableSpécifie la table de données qui contient la matrice des corrélations de Kendall à utiliser lors de l'ajustement d'une copule t.
margApproxOptsSpécifie les options pour l'approximation de la fonction de distribution marginale empirique par la méthode adaptative.
marginalsSpécifie la distribution marginale des variables individuelles. 'EMPIRICAL' utilise la distribution empirique, 'UNIFORM' suppose que les données sont déjà transformées en pseudo-échantillons uniformes.
methodSpécifie la méthode d'estimation des paramètres. 'MLE' (Maximum Likelihood Estimation) est la méthode par défaut, 'CAL' (Calibration) utilise une méthode basée sur la corrélation de Kendall.
nameSpécifie un identifiant pour l'ajustement, stocké comme une variable ID dans la table de sortie spécifiée par le paramètre `store`.
optimizerSpécifie les paramètres qui contrôlent divers aspects du processus d'estimation des paramètres.
outpseudoSpécifie la table de sortie pour sauvegarder les pseudo-échantillons avec des distributions marginales uniformes.
outputTablesSpécifie la liste des tables de résultats à sortir en tant que tables CAS.
plotSpécifie les options pour produire des graphiques de diagnostic et de corrélation.
storeStocke les propriétés du modèle et les résultats de l'ajustement dans un item store pour une utilisation ultérieure, par exemple avec l'action `copulaSimulate`.
thetaSpécifie une valeur initiale pour le paramètre de dépendance thêta des copules archimédiennes.
toleranceSpécifie la tolérance autorisée pour l'ajustement.
varSummarySi TRUE, produit une table décrivant les propriétés statistiques de base des variables du modèle.
Préparation des Données Voir la fiche de ce code dataprep
Création de Données de Simulation

Ce bloc de code SAS crée une table CAS nommée 'simdata' avec 1000 observations et deux variables, 'y1' et 'y2', qui suivent une distribution log-normale. Ces données seront utilisées pour ajuster un modèle de copule.

Copié !
1DATA mycas.simdata(keep=y1 y2);
2 call streaminit(123);
3 DO i = 1 to 1000;
4 x1 = rand('NORMAL');
5 x2 = 0.6*x1 + 0.8*rand('NORMAL');
6 y1 = exp(x1/2);
7 y2 = exp(x2/2);
8 OUTPUT;
9 END;
10RUN;

Exemples

Cet exemple montre comment ajuster une copule de Clayton simple en utilisant la méthode de la vraisemblance maximale (MLE) sur les variables 'y1' et 'y2' de la table 'simdata'.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 copula.copulaFit /
3 TABLE={name='simdata'},
4 var={'y1', 'y2'},
5 copulaType='CLAYTON',
6 method='MLE';
7RUN;
Résultat :
La sortie inclura les estimations des paramètres pour la copule de Clayton, ainsi que des statistiques d'ajustement comme le log-vraisemblance, l'AIC et le BIC.

Cet exemple ajuste une copule t en utilisant la méthode de calibration (CAL). Il spécifie une valeur initiale pour les degrés de liberté (df=5), demande un résumé des variables, génère des graphiques de diagnostic (scatter plot) et stocke le modèle ajusté dans un item store nommé 'myfit' pour une utilisation ultérieure.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 copula.copulaFit /
3 TABLE={name='simdata'},
4 var={'y1', 'y2'},
5 copulaType='T',
6 method='CAL',
7 df=5,
8 varSummary=true,
9 plot={scatter=true},
10 store={name='myfit', replace=true};
11RUN;
Résultat :
La sortie affichera un résumé des variables d'entrée, les estimations des paramètres pour la copule t (y compris les degrés de liberté estimés), et la matrice de corrélation. Un graphique de dispersion des données transformées sera également généré. L'item store 'myfit' sera créé dans la caslib active.

FAQ

Quelle est la fonction principale de l'action copulaFit dans SAS Viya ?
Quels sont les paramètres obligatoires pour utiliser l'action copulaFit ?
Quels types de copules peuvent être estimés avec l'action copulaFit ?
Quelles méthodes d'estimation sont disponibles dans l'action copulaFit ?
Comment puis-je spécifier les distributions marginales des variables ?
Est-il possible de sauvegarder le modèle ajusté pour une utilisation ultérieure ?
Que faire si j'ajuste une copule 't' et que je dispose déjà d'une matrice de corrélation ?