Generating a random variable that has a predefined covariance with other random variable
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Solomon Gofere
el 1 de Nov. de 2014
Comentada: John D'Errico
el 1 de Nov. de 2014
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!
0 comentarios
Respuesta aceptada
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.
0 comentarios
Más respuestas (2)
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
el 1 de Nov. de 2014
Setting X = e does give a covariance of 1, because e was stated as N(0,1).
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.
0 comentarios
Ver también
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!