Hi Everyone,
I'm a sort of newbie, I would like to know how and what the implications are of 'Generating a string of random standard normal variables that are correlated with each other'.
To get by this problem, I have been generating and correlating my desired sequence to a different random variable and then calculating the correlation between my sequence.
Thanks for the anticipated answer.
ps: Generate random standard normal's A, B, C, D so that have a correlation and standard deviation of corr and std.
Thanks again
No products are associated with this question.
I am not sure if this is homework or not ...
Start off with two independent random variables with zero mean and standard deviation sigma.
sigma = 10; X = sigma*randn(1e7, 1); Y = sigma*randn(1e7, 1);
Then make two new random variables from these with correlation rho.
rho = 0.2; A = X; B = sqrt(rho^2)*X+sqrt(1-rho^2)*Y;
[std(A), std(B)] corrcoef(A, B)
When you add a third random variable C you need to specify what you want rho_AB, rho_AC, and rho_AB to be. The basic idea is the same: start with N independent random variables and add them together with appropriate weighting to get N new random variables.
Thanks Daniel,
It's not an homework. I think i was unclear.
[1] I am not looking at correlating a simple randn(n, 1) to another such string. I am looking to generate a single string of random standard variables say [5X1] so that the five variables are all correlated to each other with a correlation corr and standard deviation. Sorry if my initial post was misleading.
[2] On the solution you, I will like to ask if the each corresponding element in the resulting A and B are correlated to each other. Is each element [jX1] of A correlated to the same element [jX1] of B with correlation rho?
Thanks
I am very lost. It is odd to talk about the correlation between scalars like A_i and B_j. I think what you are asking is to create 5 random processes which have a particular covariance and then you want 1 value from each process. My answer provides 2 random processes which each have 1e7 values. If you extend it to 5 terms (A,B,C,D,E) then you can do a = A(i), b = B(j), c = C(k) ... and I think what you want is [a,b,c,d,e]. Of course if you only want 1 value, you do not need to generate 1e7 values.
Given a correlation matrix C = A*A', then A = P*sqrt(D), where:
[P,D] = eig(C); % spectral decomposition
To get the correlated normal random series Z, use W = (W1, ...,W2)' (the normal random series):
Z = A*W;
Note that if you have 4 variables, then C is 4 by 4, and W should be 4 by nobs.
0 Comments