I have a dataset that contains six correlated variables, and I want to sample new data so that each variable has the same marginal distribution as the original data, and the correlations are also the same.
Unfortunately, the marginal distributions are irregular, so I can't use any standard distributions or procedures. I'm generating a kernel for each one and using the resulting empirical CDF.
How can I sample from the joint distribution?
The data represent different measures of an electricity networks reliability; they are correlated because a "bad day" may mean higher values on multiple measures. The method I've been trying is as follows:
- Find the Cholesky decomposition of the correlation matrix of the original data
- Generate standard normal variates and multiply them by the Cholesky decomposition to get correlated normal variates.
- Generate the kernels of the original data. Generate a large number of observations (100m) fitting this kernel distribution. Order these observations.
- For each data point, find the CDF of the normal variate, and then use the ordered kernel observations to select the observation corresponding to this CDF value - the value of this observation is our new variate from the marginal distribution.
The resulting data have the desired marginal distributions, but the variables don't have the correct correlations. Not sure why...