I have often heard that a copula describes in full the interdependence of a set a random variables. Lets say I want to generate a set of random variables that conform to an observed joint probability distribution. My first thought would be to estimate the correlation matrix, do a PCA to identify the most significant directions of randomness (eigen vectors) and then identify the marginal distribution of the transformed variables. These marginal distributions are, in general, not normal. I can then generate variables from these marginal distributions (which have zero correlation by construction) and then reverse the transformation to get variables with the desired interdependence. Leaving aside the issue of estimation risk (assume my correlation matrix is a good estimate of the actual correlation matrix), have I ignored any information regarding the interdependence of the random variables, that a copula would describe? If I knew the copula and all the marginal distributions (of the original variables), and I used this to generate new random variables, are there any conditions where I would get significantly different results from the PCA approach? If it helps to answer the question, I am interested in Monte Carlo simulation of financial markets.
1 Answer
PCA is focused on linear correlation, while interdependence is a much wider concept that encompasses all possible ways that variables may depend on each other. The typical example for demonstrating this, is having data points in two dimensions arranged in a circle. Although these two variables are dependent in a very structured way, their correlation is zero. In addition, applying PCA would only result in a rotated circle, essentially provding no useful information.
Copulas can describe more complex dependencies, but this is utlimately determined by the copula family in question. Some copula families are good for modelling symmetirc tail dependence, while other may be good for modelling asymmetric dependence etc.
In order to simulate variables that conform to an observed joint pdf, you will have to first apply the probability integral transform to all your variables i.e. pass each dimension through its respective empirical cumulative distribution function (ecdf). This leaves you with the dataset's dependence structure in the unit domain i.e. all variables now range from 0 to 1. This is your empirical copula. You can either simulate from this directly or you can choose to fit a parametric copula to your data. There are many copula families such as Gaussian, student-t, Gumbel, Clayton etc. A goodness-of-fit test should be performed to determine which parametric copula fits best. After having simulated from your parametric or empirical copula you have to apply the inverse probability trasnform to all your sampled observations i.e. pass each variable through its inverse ecdf (as caluclated from your original data in the actual domain). This way you end up with a new sampled observation that follows exactly the original ecdf's and its dependence structure conforms to the fitted copula. Finally, perform a two-sample test between you original and sampled population to evaluate your null hypothesis (original and sampled data originate from statistically indistinguishable models)