COPULA Procedure
The DEFINE statement specifies the relevant information of copula used for the simulation.
- name
specifies the name of the copula definition, which can be used later in the SIMULATE statement.
- copula-type
-
specifies one of the following types of copula:
- CLAYTON
specifies the Clayton copula.
- FRANK
specifies the Frank copula.
- GUMBEL
specifies the Gumbel copula.
- HACCLAYTON
specifies the hierarchical Clayton copula.
- HACFRANK
specifies the hierarchical Frank copula.
- HACGUMBEL
specifies the hierarchical Gumbel copula.
- NORMAL
specifies the normal copula.
- T
specifies the t copula.
These copula models are also described in the section Details: COPULA Procedure.
- parameter-value-options
-
specify the input parameters used to simulate the specified copula. These options must be appropriate for the type of copula specified. You can specify the following options:
-
CORR=SAS-data-set
specifies the data set that contains the correlation matrix to use for elliptical copulas. If the correlation matrix is valid but its elements are not submitted in order, then you must provide the variable names in the first column of the matrix, and these names must match the variable names in the VAR statement. For an example of a correlation matrix input in this form, see Output 10.2.1. If the correlation matrix elements are submitted in order, the first column of variable names is not required. You can use this option for normal and t copulas.
-
DF=value
specifies the degrees of freedom. You can use this option for t copulas.
-
HIERARCHY=(name=(HAC-specification )(THETA=value ))
Experimental
-
specifies the hierarchy for hierarchical Archimedean copulas. The argument usually consists of multiple specification lines, where each line specifies one copula in the hierarchy. The name can be user-defined symbols, with the exception of the copula at the top of the hierarchy, which must be named ROOT. The HAC-specification is a list of symbols that can be either defined copula names or variable names from the VAR statement, depending on whether the element of the copula is a variable or an inner copula in the hierarchy. For example, you can use the following code to define a hierarchical Archimedean copula, with the hierarchy shown in Figure 5:
var u1-u4;
define cop hacclayton hierarchy=(
root = (c1 c2)(theta=1)
c1 = (u1 u2)(theta=3)
c2 = (u3 u4)(theta=5));
Note that as long as the specification is valid, the order of the specification lines does not matter. In the previous example, you could first list
and
, and then define
.
-
KENDALL=SAS-data-set
specifies the data set that contains the correlation matrix defined in Kendall’s tau. If the correlation matrix is valid but its elements are not submitted in order, then you must provide the variable names in the first column of the matrix, and these names must match the variable names in the VAR statement. If the correlation matrix elements are submitted in order, the first column of variable names is not required. You can use this option for normal and t copulas.
-
SPEARMAN=SAS-data-set
specifies the data set that contains the correlation matrix defined in Spearman’s rho. If the correlation matrix is valid but its elements are not submitted in order, then you must provide the variable names in the first column of the matrix, and these names must match the variable names in the VAR statement. If the correlation matrix elements are submitted in order, the first column of variable names is not required. You can use this option for normal copulas.
-
THETA=value
specifies the parameter value for Archimedean copulas.
The DEFINE statement is used with the SIMULATE statement. The FIT statement can also be used with the SIMULATE statement. The results of the FIT statement can be the input of the SIMULATE statement. Therefore, the SIMULATE statement can follow the FIT statement. If there is no FIT statement, then the DEFINE statement must precede the SIMULATE statement. However, you cannot use both the FIT and DEFINE statements in the same procedure.
Last updated: June 19, 2025