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.

  • $\begingroup$ Check out elliptical distributions. If you're happy to take one of those the problem is not too bad ( and that you talk about ranks suggests you would like an elliptical distribution...) $\endgroup$ – user1587692 Mar 30 at 10:06
  • $\begingroup$ @user1587692: I am aware of those (or rather, it is not surprising to me that I can generate data from them), but how are they going to help me beyond what I elaborated in the last point? Can you elaborate in an answer? $\endgroup$ – Wrzlprmft Mar 31 at 6:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.