Code:
local varlist ""avearn" "incom" "labinc" "hour_wage" "haus" "eqinc""
***Here I create matrices to store my regression results
forval v=1/6{
local w : word `v' of `varlist'
forval z=1/2{
local a=1+(`z'-1)*3
qui reg cimp_`w' fimp_`w' if cfk090==`z', robust
matrix f_`w'_`z'=_b[fimp_`w']
qui reg cimp_`w' fimp_`w' if cfk090==`z' & cfk070<=35, robust
matrix f_`w'_`z'35=_b[fimp_`w']
qui reg cimp_`w' mimp_`w' if cfk090==`z', robust
matrix m_`w'_`z'=_b[mimp_`w']
qui reg cimp_`w' mimp_`w' if cfk090==`z' & cfk070<=35, robust
matrix f_`w'_`z'35=_b[mimp_`w']
}
}
****Bootstrap program
program define myboot, rclass
use cleanhaus.dta, replace
bsample
reg cavearn i.cfe030 b8.cageor i.cfi130 b2011.fb010 if cfk090==1 & celig==1, robust
matrix male_coef_ave=e(b)
use modul2011haus.dta, replace
bsample
gen fimp_avearn=. if cmf050!=.
forval p=0/6{
forval r=1/9{
di "`p'__`r'"
local pp=`p'+1
local rr=`r'+16
replace fimp_avearn= male_coef_ave[1,39]+male_coef_ave[1,`pp']+male_coef_ave[1,`rr'] if cmf070==`p' & cmf110==`r'
}
}
simulate f_avearn_1=_b[fimp_avearn], reps(100) seed(12345): myboot
return scalar coef=_b[fimp_avearn]
end
******Simulations
simulate f_avearn_1, reps(100) seed(12345): myboot
bstat, stat(f_avearn_1) n(13000)Code:
program define myboot, rclass
use cleanhaus.dta, replace
bsample
reg clabinc i.cfe030 b8.cageor i.cfi130 b2011.fb010 if cfk090==1 & celig==1, robust
matrix male_coef=e(b)
reg clabinc i.cfe030 b8.cageor i.cfi130 b2011.fb010 if cfk090==2 & celig==1, robust
matrix fem_coef=e(b)
reg cavearn i.cfe030 b8.cageor i.cfi130 b2011.fb010 if cfk090==1 & celig==1, robust
matrix male_coef_ave=e(b)
reg cavearn i.cfe030 b8.cageor i.cfi130 b2011.fb010 if cfk090==2 & celig==1, robust
matrix fem_coef_ave=e(b)
reg cincom i.cfe030 b8.cageor i.cfi130 b2011.fb010 if cfk090==1 & celig==1, robust
matrix male_coef_inc=e(b)
reg cincom i.cfe030 b8.cageor i.cfi130 b2011.fb010 if cfk090==2 & celig==1, robust
matrix fem_coef_inc=e(b)
reg chour_wage i.cfe030 b8.cageor i.cfi130 b2011.fb010 if cfk090==1 & celig==1, robust
matrix male_coef_hour=e(b)
reg chour_wage i.cfe030 b8.cageor i.cfi130 b2011.fb010 if cfk090==2 & celig==1, robust
matrix fem_coef_hour=e(b)
reg chg110 i.cfe030 b8.cageor i.cfi130 b2011.fb010 if cfk090==1, robust
matrix male_coef_haus=e(b)
reg chg110 i.cfe030 b8.cageor i.cfi130 b2011.fb010 if cfk090==2, robust
matrix fem_coef_haus=e(b)
reg ceqinc i.cfe030 b8.cageor i.cfi130 b2011.fb010 if cfk090==1, robust
matrix male_coef_eqinc=e(b)
reg ceqinc i.cfe030 b8.cageor i.cfi130 b2011.fb010 if cfk090==2, robust
matrix fem_coef_eqinc=e(b)
use modul2011haus.dta, replace
bsample
capture drop fimp_labinc mimp_labinc fimp_avearn mimp_avearn fimp_incom mimp_incom fimp_hour_wage mimp_hour_wage fimp_haus mimp_haus fimp_eqinc mimp_eqinc
gen fimp_labinc=. if cmf050!=.
gen mimp_labinc=. if cmf060!=.
gen fimp_avearn=. if cmf050!=.
gen mimp_avearn=. if cmf060!=.
gen fimp_incom=. if cmf050!=.
gen mimp_incom=. if cmf060!=.
gen fimp_hour_wage=. if cmf050!=.
gen mimp_hour_wage=. if cmf060!=.
gen fimp_haus=. if cmf050!=.
gen mimp_haus=. if cmf060!=.
gen fimp_eqinc=. if cmf050!=.
gen mimp_eqinc=. if cmf060!=.
forval p=0/6{
forval r=1/9{
di "`p'__`r'"
local pp=`p'+1
local rr=`r'+16
replace fimp_labinc= male_coef[1,39]+male_coef[1,`pp']+male_coef[1,`rr'] if cmf070==`p' & cmf110==`r'
replace mimp_labinc= fem_coef[1,39]+fem_coef[1,`pp']+fem_coef[1,`rr'] if cmf080==`p' & cmf140==`r'
replace fimp_avearn= male_coef_ave[1,39]+male_coef_ave[1,`pp']+male_coef_ave[1,`rr'] if cmf070==`p' & cmf110==`r'
replace mimp_avearn= fem_coef_ave[1,39]+fem_coef_ave[1,`pp']+fem_coef_ave[1,`rr'] if cmf080==`p' & cmf140==`r'
replace fimp_incom= male_coef_inc[1,39]+male_coef_inc[1,`pp']+male_coef_inc[1,`rr'] if cmf070==`p' & cmf110==`r'
replace mimp_incom= fem_coef_inc[1,39]+fem_coef_inc[1,`pp']+fem_coef_inc[1,`rr'] if cmf080==`p' & cmf140==`r'
replace fimp_hour_wage= male_coef_hour[1,39]+male_coef_hour[1,`pp']+male_coef_hour[1,`rr'] if cmf070==`p' & cmf110==`r'
replace mimp_hour_wage= fem_coef_hour[1,39]+fem_coef_hour[1,`pp']+fem_coef_hour[1,`rr'] if cmf080==`p' & cmf140==`r'
replace fimp_haus= male_coef_haus[1,39]+male_coef_haus[1,`pp']+male_coef_haus[1,`rr'] if cmf070==`p' & cmf110==`r'
replace mimp_haus= fem_coef_haus[1,39]+fem_coef_haus[1,`pp']+fem_coef_haus[1,`rr'] if cmf080==`p' & cmf140==`r'
replace fimp_eqinc= male_coef_eqinc[1,39]+male_coef_eqinc[1,`pp']+male_coef_eqinc[1,`rr'] if cmf070==`p' & cmf110==`r'
replace mimp_eqinc= fem_coef_eqinc[1,39]+fem_coef_eqinc[1,`pp']+fem_coef_eqinc[1,`rr'] if cmf080==`p' & cmf140==`r'
}
}
local varlist ""avearn" "incom" "labinc" "hour_wage" "haus" "eqinc""
forval v=1/6{
local w : word `v' of `varlist'
forval z=1/2{
local a=1+(`z'-1)*3
qui reg cimp_`w' fimp_`w' if cfk090==`z', robust
return scalar f_`w'_`z'=_b[fimp_`w']
qui reg cimp_`w' fimp_`w' if cfk090==`z' & cfk070<=35, robust
return scalar f_`w'_`z'35=_b[fimp_`w']
qui reg cimp_`w' mimp_`w' if cfk090==`z', robust
return scalar m_`w'_`z'=_b[mimp_`w']
qui reg cimp_`w' mimp_`w' if cfk090==`z' & cfk070<=35, robust
return scalar f_`w'_`z'35=_b[mimp_`w']
}
}
end
simulate f_avearn_1=_b[fimp_avearn], reps(100) seed(12345): myboot"[fimp_avearn] not found
error in expression: _b[fimp_avearn]"
I would also appreciate if you point out any redundancies.
Thank you very much in advance!
0 Response to I can't simulate a bootstrap program with multiple results
Post a Comment