Sir : Can you teach me how to store rolling estimates coefficient using matix ? The code copy from the Eview8 's sample programs (rollfcst1.prg), I wrote some lines myself (marked on red) on the original codes.I want to store all beta cofficient(coeff1 coeff2 coeff3 ) and statistics(coeff4 coeff5 coeff6) on every one looping, from OLS estimate procedure, I hope result like below table: nroll coeff1 coeff2 coeff3 coeff4 coeff5 coeff6 1 -13.5 8.6 4.3 -1.65 1.96 2.54 2 -3.6 7.2 2.1 - 3.01 2.04 1.89 3 . . . . . . 4 ' create workfile wfcreate rollfcst q 1968 1982 ' fill data series y y.fill3.733,3.567,3.533,3.400,3.400,3.433,3.576,3.567,4.167,4.733,5.167,5.867,5.900,5.900,6.033,5.967,5.767,5.633,5.600,5.333,4.933,4.867,4.833,4.800,5.033,5.133,5.633,6.667,8.133,8.767,8.600,8.433,7.633,7.467,7.833,7.900,7.467,7.100,6.900,6.633,6.200,6.000,5.967,5.833,5.733,5.767,5.800,5.867,6.133,7.500,7.633,7.500,7.333,7.400,7.333,8.367,8.767,9.367,9.500,10.53 ' set window size !window = 20 ' get size of workfile !length = @obsrange ' declare equation for estimation equation eq1 ' declare series for final results series yhat 'point estimates series yhat_se ' forecast std.err. ' set step size !step = 4 'calculate number of rolls !nrolls = @floor((!length-!window)/!step) 'matrix to store coefficient estimates matrix(!nrolls ,3) coeff ' where 3 is the number of coefficients ' move sample !step obs at a time for !i = 1 to !length-!window+1-!step step!step 'set sample to estimation period smpl@first+!i-1 @first+!i+!window-2 'estimate equation eq1.lsy c y(-1) y(-2) coeff(!i,1)= eq1.@coef(1) coeff(!i,2)=eq1.@coef(2) coeff(!i,3)=eq1.@coef(3) coeff(!i,4)=eq1.@coef(4) coeff(!i,5)=eq1.@coef(5) coeff(!i,6)=eq1.@coef(6) 'reset sample to forecast period smpl@first+!i+!window-1 @first+!i+!window-2+!step 'make forecasts in temporary series first eq1.forecast(f=na)tmp_yhat tmp_se 'copy data in current forecast sample yhat= tmp_yhat yhat_se= tmp_se next THS ! |