Chia Ying Lee
21 Jan 2017
A copula is a multivariate random variable with standard uniform marginals and a specified correlation.
The name “copula” means “link” or “tie” in Latin, and refers to the concept of tying together multiple uniform random variables, in the sense of constructing correlation between the variates, to form a joint distribution.
In many real applications, it is often the case that marginal distributions are known but the joint distribution is not known.
Copulae provide a tractable way to construct a joint distribution, given just the marginals and the pairwise correlations between the variables.
This application of copulae has found applications in fields such as quantitative finance, insurance and risk analysis.
The Gaussian copula is a special class of copula.
This code shows how to sample from a Gaussian copula with \( \rho=0.9 \).
nSamples <- 1000; rho <- 0.9
z1 <- rnorm(nSamples)
z2 <- z1 * rho + rnorm(nSamples) * sqrt(1-rho^2)
c1 <- pnorm(z1); c2 <- pnorm(z2) # (c1, c2) are the Gaussian copula samples!
print(c(cor(z1, z2), cor(c1, c2)))
[1] 0.9035952 0.8934901
Explore more on copulae at https://lchiaying.shinyapps.io/Project3_app/