# Why use a copula to generate synthetic data?

For class, I am tasked to generate synthetic stock data using the copula R package. The step-by-step process is picking 2 stocks (i.e., Amazon & Apple), fit their marginal distributions (I am using skewed student's T for both), then fit a Copula (I am using Frank copula). Then I can generate Synthetic data from the fitted frank copula.

syn_data <- rCopula(copula = frankCopula(param = fr_params), n = length(x.aapl))
colnames(syn_data) <- c("AAPL", "AMZN")

syn_x.aapl <- qsstd(syn_data[,1], mean = theta.aapl[1], sd = theta.aapl[2], nu = theta.aapl[3], xi = theta.aapl[4])
syn_x.amzn <- qsstd(syn_data[,2], mean = theta.amzn[1], sd = theta.amzn[2], nu = theta.amzn[3], xi = theta.amzn[4])


The scatter plot shows the real and synthetic data.

My questions are, what does the copula tell us? Is the shape interpretable? And why do we use it to fit data instead of the joint distribution curve?

Just as CDFs are equivalent to PDFs for univariate distributions, copulas are equivalent to PDFs for multivariate data. Copulas provide an alternative mode of specifying a joint distribution. And rather like the univariate case, it means that you can use a uniform (0,1) random number generator (in your case twice) to sample from $$\tt{(Y_{AMZN}, Y_{AAPL})}$$ under the assumption that they are distributed by a Frank copula. First you obtain, $$\tt{U_{AMZN} \sim uniform(0,1)}$$ and $$\tt{U_{AAPL} \sim uniform(0,1)}$$. The copula maps these numbers to $$\tt{(Y_{AMZN}, Y_{AAPL})}$$ using the bivariate Frank copula formula give here where $$\theta \in \mathbb{R}$$ \ $$0$$ is a single parameter that "governs the strength of the dependence."