无尘第二 发表于 2012-6-11 22:50 
奇怪,还是不对。不清楚问题出在哪里?跟下面连玉君老师的代码相差挺大。
egen t = group(year)
qui ...
我做了一下,结果一样的!
// 方法一
egen t = group(year)
qui sum t
local Nt = r(max)
egen s = group(ind)
qui sum s
local Ns = r(max)
gen res = .
forvalues t = 1/`Nt' {
forvalues s = 1/`Ns' {
cap qui reg return returntl1 size if (t==`t' & s==`s')
cap qui predict e if e(sample), res
cap qui replace res = e if e(sample)
cap drop e
}
}
save example, clear
// 方法二
statsby _b, by(ind year) saving(123.dta, replace): reg return returntl1 size
merge m:1 ind year using 123.dta
gen res2 = return - returntl1*_b_returntl1 - size*_b_size - _b_cons
// sungmoo的方法
set matsize 1000
qui reg return (s#t)##(c.returntl1 c.size)
predict res3, res
// 确认结果
sc res3 res2 res
另:你把变量returntl1写成returnl1啦;数据中stkcd和year无法唯一识别观测值,奇怪。
duplicates tag stkcd year, gen(_tag)
br if _tag