How to generate two correlated random samples, one follows geometric Brownian motion, the other follows a beta distribution? I'd like to conduct a Monte Carlo simulation with two random variables.
One random variable is generated by geometric Brownian motion, the other random variable is sampled by drawing random values from a Beta distribution. The two variables should be correlated.
My questions are:
How to model the correlation between the two random variables? Is Copula a direction that I should look into?
How to simulate the two variables in Python? Is there any package that would be helpful?
 A: Assuming that any convenient parametrizable sort of correlation suffices, here is a workable model whose details you can flesh out.
A straightforward way to generate correlated standard-normally distributed variables is via a Cholesky decomposition. Various instructions can be found for this online or in CrossValidated. See, for example,
How to use the Cholesky decomposition, or an alternative, for correlated data simulation
Subsequently, these random standard-normal variables could be converted into your Brownian motion and beta-distribution variables. Distance travelled in Brownian motion typically follows a normal distribution with a specific variance, so would just require rescaling one of the standard normal variables (or N, for N-dimensional motion). To convert one standard normally distributed variable to one following a beta distribution, use their CDFs -- i.e., if the standard normal variable is at percentile p, find the corresponding percentile p value for the Beta distribution in question. In R, for example, a standard normal quantity x would be transformed via
qbeta(pnorm(1.2),shape1=1,shape2=2)
This method of parametrizing correlation would not achieve a desired Pearson correlation coefficient, but would (I believe) result in a Spearman correlation equal to the correlation coefficient used in the first (Cholesky decomposition) step.
