Hi, I need to solve the maximum likelihood estimation problem. Here is the equation all the matrix and scalar are given except the highlighted gamma*_hat (1x1 matrix), Beta*_hat (6x1 matrix) and Sigma*_hat (6x6 matrix). Here's my part of proc iml codes for the above equations. (N = 6, T =60) I already have the initial guess number for beta and sigma. I need to plug my initial guess beta and sigma to gamma equation and get a new gamma, and then use this new gamma to calculate a new beta and sigma, and repeat this process until the results convergence. /*gamma*/
gamma = ((I - beta)`*inv(sigma)*(mu - beta*mu_m))/ ((I - beta)`*inv(sigma)*(I - beta));
/*beta*/
/**Numerator*/
Nu = j(N,1,0); D = 0;
do i = 1 to T by 1;
Nu = Nu + (R[i, ]` - gamma*ID)*(Rm[i,1] - gamma);
end;
/*Denominator*/
do i = 1 to T by 1;
D = D + (Rm[i,1] - gamma)##2;
end;
beta = Nu/D;
/*sigma*/
sigma = j(6,6,0);
do i = 1 to T by 1;
sigma = sigma + (Rt[i, ]`-gamma*(I-beta) - beta*Rm_b[i,1])*(Rt[i, ]`-gamma*(I-beta) - beta*Rm[i,1])`;
end;
sigma_b = sigma_b/T; Does anyone know how can I repeat these codes? should I use do loop? is there a repeat code function in iml? I really appreciate any help!
... View more