Given two probability density functions and correlation matrix, how to generate two correlated random sequences?

3 views (last 30 days)
Given two probability density functions:
  • "ExponentialPower": px = exp( -0.5*abs((x-mu)/sigma).^(2/(1+beta) ))/( 2^((3+beta)/2)*sigma*gamma((3+beta)/2) ), where mu = 0.0015; sigma = 0.0065; beta = 1.2135;
  • "tLocationScale": py = gamma((nu+1)/2)/(gamma(nu/2)*sqrt(pi*nu*sigma^2)) * (1+(y-mu).^2/(nu*sigma^2)).^(-(nu+1)/2), where mu=4.48738e-4; sigma=0.0095; nu=2.202;
and the correlation matrix: C = [1,0.5556;0.5556,1].
I can use importance sampling + randsrc() to random generate two uncorrelated random sequences, can anyone tell me how to generate two correlated random sequences?

Answers (1)

Jeff Miller
Jeff Miller on 2 Aug 2018
This question is difficult because there are lots of ways to generate sequences from different bivariate distributions that all have those marginals and all have the same linear correlation. There is no way to guess which of those bivariate distributions is appropriate for your simulation (and maybe you aren't sure either). To start, have a look at the help pages for the various MATLAB routines dealing with copulas.

Products


Release

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!