The input parameters are part of a correlation matrix which is fed into PROC COPULA: proc copula;
var randomfactor1 randomfactor2 randomfactor3 randomfactor4;
define cop normal (corr = correlmatrix);
simulate cop / ndraws = %eval(&numsims.*&numtimesteps.)
seed = &seed.
outuniform = simcopula
plots = (datatype=original);
run; The output simulations are merged with a set of rates, using the random factors to calculate sets of rates over the numtimesteps for each of the numsims . After several data steps and another merge an output correlation is calculated: proc corr data=rates_forcorr out=rates_corr_mtx;
var infYield&termyears. infYield1 realYield&termyears. realYield1;
run; These output correlations are required to match desired values.
... View more