Hello everyone,
I am currently struggling with a foreach command. I would like to make several regression with different variables, where only the prefix change, at once . Here is my code :
local country is only used to change a part of the name of the variable, changing then the data.
One regresion is made but I then have this error message :
I tested this form :
and it perfectly works. I do not really understand why "p_c_F0_ea_pca_r_stock" for example can not be created (and found).
I would be very grateful if anyone knows where is my mistake(s),
Thank to you all !
I am currently struggling with a foreach command. I would like to make several regression with different variables, where only the prefix change, at once . Here is my code :
Code:
local variable pca_r_stock pca_r_hous local country ea fr de es it local forward F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 foreach var of local variable { foreach countr of local country { foreach lead of local forward { newey `lead'.`countr'_`var' mpshock_rr L(1/2).`countr'_`var', lag(3) global mpshock_rr "mpshock_rr" lincom $mpshock_rr scalar p_c_`lead'_`countr'_`var'=r(estimate) scalar p_se_`lead'_`countr'_`var'=r(se) scalar p_a1_`lead'_`countr'_`var'= p_c_`lead'_ `countr'_`var'+ 1*p_se_`lead'_`countr'_`var' scalar p_b1_`lead'_`countr'_`var' = p_c_`lead'_`countr'_`var' - 1*p_se_`lead'_`countr'_`var' scalar p_a2_`lead'_`countr'_`var' = p_c_`lead'_`countr'_`var' + 2*p_se_`lead'_`countr'_`var' scalar p_b2_`lead'_`countr'_`var' = p_c_`lead'_`countr'_`var' - 2*p_se_`lead'_`countr'_`var' matrix alpha11=nullmat(alpha11), p_a2_`lead'_`countr'_`var' matrix alpha12=nullmat(alpha12), p_a1_`lead'_`countr'_`var' matrix alpha13=nullmat(alpha13), p_c_`lead'_`countr'_`var' matrix alpha14=nullmat(alpha14), p_b1_`lead'_`countr'_`var' matrix alpha15=nullmat(alpha15), p_b2_`lead'_`countr'_`var' matrix alpha16=alpha11\alpha12\alpha13\alpha14\alpha15 }
One regresion is made but I then have this error message :
Code:
p_c_F0_ not found program error: code follows on the same line as close brace
Code:
local variable ea_pca_r_stock ea_pca_r_hous local forward F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 foreach var of local variable { foreach lead of local forward { newey `lead'.`var' mpshock_rr L(1/2).`var', lag(3) global mpshock_rr "mpshock_rr" lincom $mpshock_rr scalar p_c_`lead'_`var'=r(estimate) scalar p_se_`lead'_`var'=r(se) scalar p_a1_`lead'_`var' = p_c_`lead'_`var' + 1*p_se_`lead'_`var' scalar p_b1_`lead'_`var' = p_c_`lead'_`var' - 1*p_se_`lead'_`var' scalar p_a2_`lead'_`var' = p_c_`lead'_`var' + 2*p_se_`lead'_`var' scalar p_b2_`lead'_`var' = p_c_`lead'_`var' - 2*p_se_`lead'_`var' matrix alpha11=nullmat(alpha11), p_a2_`lead'_`var' matrix alpha12=nullmat(alpha12), p_a1_`lead'_`var' matrix alpha13=nullmat(alpha13), p_c_`lead'_`var' matrix alpha14=nullmat(alpha14), p_b1_`lead'_`var' matrix alpha15=nullmat(alpha15), p_b2_`lead'_`var' matrix alpha16=alpha11\alpha12\alpha13\alpha14\alpha15 } matrix alpha16=alpha16' svmat alpha16, names(mpshock_rr_`var'_) mat list alpha16 scalar drop _all mat drop _all gen pos_mpshock_rr_`var'_3 = mpshock_rr_`var'_3 gen neg_mpshock_rr_`var'_3 = -mpshock_rr_`var'_3 }
and it perfectly works. I do not really understand why "p_c_F0_ea_pca_r_stock" for example can not be created (and found).
I would be very grateful if anyone knows where is my mistake(s),
Thank to you all !
Comment