I have a dataset of numbers, which I know to be correlated with a covariance matrix that I can reasonably estimate. This correlation has no (known) structure, such as being time, space, or clusters. Moreover, the values are not normally distributed.
For a sanity check (surrogate, resampling, or whatever you wish to call it), I want to generate artificial datasets with the following properties:
- The data is correlated as per the given covariance matrix.
- The values have the same distribution as the original data.
It probably suffices if those properties are only approximately preserved. You might call this a parametric bootstrap of correlated data.
What I found so far
resampling correlated data using bootstrap asks for the case of data with a known correlation structure. The books recommended in the answer only seem to address the case of correlations that originate from temporal or spacial sampling or from clusters.
There are procedures for generating normally distributed data with a known correlation matrix, as addressed, e.g., in: Generating data with a given sample covariance matrix.
My best ad-hoc approach so far would be: Generate normally distributed data adhering to the correlation matrix, and then rank-transform it to the target distribution, hoping that the correlation structure will not be affected too strongly.