But if this is certainly the case for the Pearson correlation coefficient, this is not true for others correlation measures as the Kendall’s coefficient.

]]>Thanks, Clara. However the paper states that “Pearson correlation coefficient depends not only on the copula but also on the marginal distributions. Thus, this measure is affected by (nonlinear) changes of scale.” Which just states an impossibility theorem in terms of achieving a given correlation through copulas.

]]>summarizes a group of algorithms to simulate outcomes from a multivariate distribution (mostly proposed by Lee or Genest) based on the concept of generator of a copula and the inverse transform method.

One interesting point is that, at least to the best of my knowledge, there is no method to simulate from a multivariate (not only bivariate) distribution by fixing the multivariate correlation (like the multivariate rho). ]]>

That’s definitely true. It’s more of an approximate, hacky solution, rather than a nice, exact, mathematical solution.

]]>I feel more and more queasy about this approach! It aims at an empirical correlation, rather than an actual correlation…

]]>I think crashing is not unlikely with this sort of approach: the dataset is reordered repeatedly in order to move towards the desired correlation. However, the values in `data` are never changed, only reordered, so getting a very high correlation on a small dataset will not get convergence.

So, correlate(replicate(2, rnorm(10)), .96) will probably crash. For many cases where we do not require an exact or extreme correlation in the output dataset, however, it might be a nice approach.

]]>It is based on Gaussian copula and works for arbitrary marginals and fixed correlations. However, not for all possible combinations there exists a solution; e.g., for some marginals there are restrictions on the correlations that can be represented. However, in practice this is usually not an issue, as this tends to happen when the target correlation approaches -1 or 1.

]]>Another attempt and now it does not crash. And it works indeed! Great!

]]>Interesting, Kees: I just tested it with 10000 simulations and my R program crashed. Will try again!

]]>