用 loop 通常不是一个好 idea,请先安装 ssc install asreg 并试试
- clonevar A = Assets
- clonevar EBXI = B001300000
- clonevar cfo = Op_Net_CF
- clonevar sic= Indcd
- gen acc = (EBXI - cfo)/L.A
- gen invA = 1/L.A
- gen Dsale = D.B001101000/L.A
- gen PPE = fixed_asset/L.A
- drop if sic == ""
- /*
- egen sic_year = group(sic year)
- sum sic_year
- local N = r(max)
- disp `N'
- gen DACC = .
- forvalues i = 1/`N' {
- qui cap reg acc invA Dsale PPE if sic_year==`i', nocons
- qui cap predict e if e(sample), res
- qui cap replace DACC = e if e(sample)
- cap drop e
- }
- */
- bys sic year: asreg acc invA Dsale PPE, noc fit
- ren _residuals DACC1
- sum DACC*
复制代码两者 (DACC, DACC1) 有一点些微差距。