herbertzhao 发表于 2011-7-15 12:40
既然可以用by,就可以用foreach 或者forvalues。每次回归之后就把收集起来的数据存放在新建的变量里就好了。比如
gen resid_stddev = .
forvalues year in 1980/2010 {
reg Y X1 X2 X3 if year == `year'
capture drop resid
predict resid if e(sample), r
su resid
replace resid_stddev = r(sd) if year == `year'
}
table year, contents(mean resid_stddev)
g e=.
forv year=1980/2010 {
reg y x1 x2 x3 if year == `year'
predict rs if e(sample), r
replace e=rs if e(sample)
drop rs
}
bys year: egen rs=sd(e)