set more off
set mem 128
clear
insheet using em.csv
rename v5 rec
rename v6 ppe
rename v7 asset
rename v8 rev
rename v9 ni
rename v10 cfo
destring ppe rev ni,replace force
gen ta=ni-cfo /*总应计利润*/
xtset v2 v1 /* 代码与年份*/
gen lasset=l.asset /*总资产滞后一期*/
gen blasset=1/l.asset /*总资产滞后一期的倒数*/
gen lrev=l.rev /*主营业务收入滞后一期 */
gen drev=rev-lrev /*主营业务收入增长 */
gen bta=ta/lasset /*总应计与滞后一期资产的比值*/
gen bdrev=drev/lasset /*营业收入与滞后一期资产的比值?/
gen bppe=ppe/lasset /*固定资产净值*/
bysort csrc v1: egen num=count(v2)
keep if num >=15
cap drop g
egen g=group(v1 csrc)
gen DA=.
forvalues i=1/251{
reg bta blasset bdrev bppe if (g==`i'),noconstant
predict da if g==`i', res
replace DA=da if g==`i'
drop da
}