Generating a random variable that has a predefined covariance with other random variable

3 visualizaciones (últimos 30 días)
I wanted to generate a normal random variable which has a predefined co-variance with another random number. But I can't figure out how to proceed.Here is the specific problem,
I have e~N(0,1) and I want to generate X such that cov(x,e)=1 and E(X)=0. How can I generate this random number with sample size 500?
Thanks!

Respuesta aceptada

Roger Stafford
Roger Stafford el 1 de Nov. de 2014
You haven't stated what you want the variance of X to be. If it is to be 1, the trivial solution would be to set X = e. For general var(X) = v (which must be greater than or equal to 1,) use this formula for generating X:
X = e(1:500) + sqrt(v-1)*randn(1,500);
where presumably 'e' and randn are statistically independent.

Más respuestas (2)

Matt J
Matt J el 1 de Nov. de 2014
Editada: Matt J el 1 de Nov. de 2014
How about just setting X=e ?
  3 comentarios
Roger Stafford
Roger Stafford el 1 de Nov. de 2014
Setting X = e does give a covariance of 1, because e was stated as N(0,1).

Iniciar sesión para comentar.


the cyclist
the cyclist el 1 de Nov. de 2014
Editada: the cyclist el 1 de Nov. de 2014
If you have the Statistics Toolbox, you can use the mvnrnd command.
If you don't, you can use Cholesky decomposition to do this. This page seems to have a pretty good explanation, and there is even some MATLAB code there.

Categorías

Más información sobre Random Number Generation en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by