Generating a random variable that has a predefined covariance with other random variable
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Solomon Gofere
il 1 Nov 2014
Commentato: John D'Errico
il 1 Nov 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 Commenti
Risposta accettata
Roger Stafford
il 1 Nov 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 Commenti
Più risposte (2)
Matt J
il 1 Nov 2014
Modificato: Matt J
il 1 Nov 2014
How about just setting X=e ?
3 Commenti
Roger Stafford
il 1 Nov 2014
Setting X = e does give a covariance of 1, because e was stated as N(0,1).
the cyclist
il 1 Nov 2014
Modificato: the cyclist
il 1 Nov 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 Commenti
Vedere anche
Categorie
Scopri di più su Random Number Generation in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!