加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

一个完整的处理论文数据的命令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  %tm

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  %tm

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作图

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有