The CCOPULA Procedure
Example 7.1 Simulating Default Times
Suppose the correlations structure required for a normal copula function is already given. For example, it can be estimated from the historic data on default times in some set of industries, but this stage is not in the scope of this example. The correlations structure is saved in a SAS data set called Inparm. The following statements and their output in Output 7.1.1 show that the correlation parameter for Y1 and Y2 is set at 0.8:
proc print data = inparm;
run;
Output 7.1.1: CCopula Pearson Correlations Matrix
| Obs | Y1 | Y2 |
|---|---|---|
| 1 | 1.0 | 0.8 |
| 2 | 0.8 | 1.0 |
Now you use PROC CCOPULA to simulate the data. The VAR statement specifies the list of variables to contain simulated data. The DEFINE statement assigns the name COP and specifies a normal copula that reads the correlations matrix from the inparm data table.
The SIMULATE statement refers to the COP label defined in the VAR statement and specifies some options: the NDRAWS= option specifies a sample size, the SEED= option specifies 1234 as the random number generator seed, and the OUTUNIFORM=NORMAL_UNIFDATA option names the output data table for the result of simulation in uniforms.
/* simulate the data from bivariate normal copula */
proc ccopula ;
var Y1-Y2;
define cop normal (corr=mycas.inparm);
simulate cop /
ndraws = 1000000
seed = 1234
outuniform = mycas.normal_unifdata;
run;
The next DATA step transforms the variables from zero-one uniformly distributed to nonnegative exponentially distributed with parameter 0.5. Three indicator variables are added to the data table. SURVIVE1 and SURVIVE2 are equal to 1 if a respective company has remained in business for more than three years. SURVIVE is equal to 1 if both companies survived the same period together.
/* default time has exponential marginal distribution with parameter 0.5 */
data default;
set mycas.normal_unifdata;
array arr{2} Y1-Y2;
array time{2} time1-time2;
array surv{2} survive1-survive2;
lambda = 0.5;
do i=1 to 2;
time[i] = -log(1-arr[i])/lambda;
surv[i] = 0;
if (time[i] >3) then surv[i]=1;
end;
survive = 0;
if (time1 >3) && (time2 >3) then survive = 1;
run;
The first analysis step is to look at correlations between survival times of two companies. This step is performed with the following CORR procedure:
proc corr data = default pearson kendall;
var time1 time2;
run;
The output of this code is given in Output 7.1.2.
Output 7.1.2 shows some descriptive statistics and two measures of correlation: Pearson and Kendall. Both of these measures indicate high and statistically significant dependence between life spans of two companies.
Output 7.1.2: Default Time Descriptive Statistics and Correlations
| 2 Variables: | time1 time2 |
|---|
| Simple Statistics | ||||||
|---|---|---|---|---|---|---|
| Variable | N | Mean | Std Dev | Median | Minimum | Maximum |
| time1 | 1000000 | 2.00023 | 1.99883 | 1.38633 | 3.85293E-6 | 24.18938 |
| time2 | 1000000 | 1.99897 | 1.99965 | 1.38476 | 6.43006E-6 | 25.85567 |
| Pearson Correlation Coefficients, N = 1000000 Prob > |r| under H0: Rho=0 | ||||||
|---|---|---|---|---|---|---|
| time1 | time2 | |||||
| time1 |
|
| ||||
| time2 |
|
| ||||
| Kendall Tau b Correlation Coefficients, N = 1000000 Prob > |tau| under H0: Tau=0 | ||||||
|---|---|---|---|---|---|---|
| time1 | time2 | |||||
| time1 |
|
| ||||
| time2 |
|
| ||||
The second and final step is to empirically estimate the default probabilities of two companies. This is done using the FREQ procedure as follows:
proc freq data=default;
table survive survive1-survive2;
run;
The result is shown in Output 7.1.3.
Output 7.1.3: Probabilities of Default
| survive | Frequency | Percent | Cumulative Frequency | Cumulative Percent |
|---|---|---|---|---|
| 0 | 852317 | 85.23 | 852317 | 85.23 |
| 1 | 147683 | 14.77 | 1000000 | 100.00 |
| survive1 | Frequency | Percent | Cumulative Frequency | Cumulative Percent |
|---|---|---|---|---|
| 0 | 776594 | 77.66 | 776594 | 77.66 |
| 1 | 223406 | 22.34 | 1000000 | 100.00 |
| survive2 | Frequency | Percent | Cumulative Frequency | Cumulative Percent |
|---|---|---|---|---|
| 0 | 777292 | 77.73 | 777292 | 77.73 |
| 1 | 222708 | 22.27 | 1000000 | 100.00 |
Output 7.1.3 shows that the empirical default probabilities are 77.59% and 77.63%. Assuming that these companies are independent gives the probability estimate of both companies defaulting during the period of three years as: 0.776*0.776=0.602 (60.2%). Comparing this naive estimate with the much higher actual 85.2% joint default probability illustrates that neglecting the correlation between the two companies significantly underestimates the probability of default.