一个完整的处理论文数据的命令STATA
(2015-09-12 22:35:26)
数据截尾:
winsor tca,gen(tca1) p(0.01)
winsor cfo,gen(cfo1) p(0.01)
winsor rev,gen(rev1) p(0.01)
winsor ppe,gen(ppe1) p(0.01)
gen tca2=d.ca-d.cl-d.cash+std
sum tca1 l.cfo1 cfo1 f.cfo1 d.rev1 ppe1
数据转换(变得小一些)
gen tca2=tca1/1000000
gen cfo2=cfo1/1000000
gen rev2=rev1/1000000
gen ppe2=ppe1/1000000
sum tca2 cfo2 rev2 ppe2
模型一:
duplicates drop loc1 year,force
tsset loc1 year
xtreg tca2 l.cfo2 cfo2 f.cfo2 d.rev2 ppe2
est store re
xtreg tca2 l.cfo2 cfo2 f.cfo2 d.rev2 ppe2,fe
est store fe
hausman fe re
产生残差:
predict e,e
sum e
egen loc1=group(loc)
xtset loc1 year
产生Eg及标准差:
Gen eg=e
tssmooth ma t=e,w(4 1)
tssmooth ma t1=e^2,w(4 1)
bys loc2(year):g s=sqrt((t2-t^2)5/4) if _n>4
或:
cap drop eq*
egen eq=sd(e) if year<2004,by(loc2)
replace eq=0 if year!=2003
replace eq=0 if year!=2003
egen eq1=sd(e) if year>2001 &year<2005,by(loc2)
replace eq1=0 if year!=2004
egen eq2=sd(e) if year>2002 &year<2006,by(loc2)
replace eq2=0 if year!=2005
egen eq3=sd(e) if year>2003 &year<2007,by(loc2)
replace eq3=0 if year!=2006
egen eq4=sd(e) if year>2004 &year<2008,by(loc2)
replace eq4=0 if year!=2007
egen eq5=sd(e) if year>2005 &year<2009,by(loc2)
replace eq5=0 if year!=2008
egen eq6=sd(e) if year>2006 &year<2010,by(loc2)
replace eq6=0 if year!=2009
egen eq7=sd(e) if year>2007 &year<2011,by(loc2)
replace eq7=0 if year!=2010
egen eq8=sd(e) if year>2008 &year<2012,by(loc2)
replace eq8=0 if year!=2011
egen eq9=sd(e) if year>2009&year<2013,by(loc2)
replace eq9=0 if year!=2012
egen eq10=sd(e) if year>2010&year<2014,by(loc2)
replace eq10=0 if year!=2013
egen eq11=sd(e) if year>2011&year<2015,by(loc2)
replace eq11=0 if year!=2014
replace eq=eq+eq1+eq2+eq2+eq4+eq5+eq6+eq7+eq8+eq9+eq1-+eq11
replace eq=eq+eq1+eq2+eq2+eq4+eq5+eq6+eq7+eq8+eq9+eq10+eq11
replace eq=. if year<2003
sum eq
drop eq1 eq2 eq3 eq4 eq5 eq6 eq7 eq8 eq9 eq10 eq11
对EQ分年作表:
tabstat eq,by(year) s(n mean p10 p25 p50 p75 p90)
将年份进行分组:
gen year1=year
replace year1=1 if year<=2007
replace year1=2 if year>2007
egen q1=cut(eq), at(0,0.2, 0.4, 0.6, 0.8,1) icode
tab q1
gen q2=q1+1
对模型二进行数据转换:
gen ep=1/pe
gen after01=year
replace after01=0 if year<2008
replace after01=0 if year>2009
replace after01=1 if year==2009
replace after01=1 if year==2008
gen growth2=d3.bookev/l3.bookev
gen leverage2=td/ta
gen size2=ta
分组回归系数计算:
reshape long v, i(id) j(time)
gen year1=ym(year,month)
format
year1
tsset loc2 time
gen y1=d.y/l.y
gen x1=dx/l.x-rfr
gen rfr1=rfr/100
gen y2=y1-rfr1
gen x2=x1
sum y2 x2
gen ym=ym(year,mon)
format
ym
Statsby _b by(loc2 year):regress y2 x2
replace beta=. if year==2001
replace beta=. if year==2002
replace beta=. if year==2003
duplicates drop loc2 year,force
tsset loc2 year
statsby _b,by(year loc2):reg y2 x2
模型2:
gen after_eq=after01*eq
tabstat ep growth2 beta leverage2 size2 eq after_eq,s(n mean p5 p25 p50 p75 p95)
xi:xtreg ep growth2 beta leverage2 size2 eq after_eq i.year
est store re
xi:xtreg ep growth2 beta leverage2 size2 eq after_eq i.year,fe
est store fe
hausman fe re
pwcorr ep growth2 beta leverage2 size2 eq after_eq , star(.05) bonferroni
xtsum
作图:
egen q1=cut(eq), at(0,0.2, 0.4, 0.6, 0.8) icode
tab q1
gen q2=q1+1
tab q2
tabstat beta,by(q1) s(mean)
gen year1=year
tabstat beta if year>2007,by(q1) s(mean)
tabstat beta if year<=2007,by(q1) s(mean)
然后通过表格用EXCEL作图