楼主: jxapp_25635
2842 1

[回归分析求助] stata事件研究法程序求指点 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

小学生

50%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
43 点
帖子
2
精华
0
在线时间
12 小时
注册时间
2016-12-22
最后登录
2017-1-26

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
clear
cd c:\stata
use eventdates1, clear                     
sort company_id
by company_id: gen eventcount=_N           
by company_id: keep if _n==1
sort company_id
keep company_id eventcount
save eventcount
use stockdata1, clear                       
sort company_id
merge m:1 company_id using eventcount   
tab _merge                                 
keep if _merge==3
drop _merge
expand eventcount   
drop eventcount
sort company_id date
by company_id date: gen set=_n
sort company_id set
save stockdata2                           
use eventdates1, clear   
sort company_id
by company_id: gen set=_n
sort company_id set
save eventdates2                          
use stockdata2, clear
merge m:1 company_id set using eventdates2     
tab _merge                                 
list company_id if _merge==2
keep if _merge==3
drop _merge   
egen group_id = group(company_id set)
sort group_id date
by group_id: gen datenum=_n
by group_id: gen target=datenum if date==event_date  
egen td=min(target), by(group_id)
drop target
gen dif=datenum-td

by group_id: gen event_window=1 if dif>=-10 & dif<=10         
egen count_event_obs=count(event_window), by(group_id)
by group_id: gen estimation_window=1 if dif<-30 & dif>=-160   
egen count_est_obs=count(estimation_window), by(group_id)
replace event_window=0 if event_window==.
replace estimation_window=0 if estimation_window==.

tab group_id if count_event_obs<21
tab group_id if count_est_obs<130
drop if count_event_obs <21
drop if count_est_obs < 130                              

set more off
browse                     /*程序的主体部分我有点搞不清是怎样循环的,为什么没有求77个样本平均值的过程呢?
gen predicted_return=.
egen id=group(group_id)
forvalues i=1(1)77{                    /*样本中有77家公司   求大神解释一下经过筛选之后的样本数要怎么快速的看出来,我是自己数出来的
l id group_id if id==`i' & dif==0      
reg ret market_ret if id==`i' & estimation_window==1     
predict p if id==`i'
replace predicted_return = p if id==`i' & event_window==1
drop p
}  
outreg2 using test.rtf

sort id date
gen abnormal_return=ret-predicted_return if event_window==1
by id: egen cumulative_abnormal_return = sum(abnormal_return)
sort id date
by id: egen ar_sd = sd(abnormal_return)                                 
gen test =(1/sqrt(21)) * ( cumulative_abnormal_return /ar_sd)
list company_id abnormal_return cumulative_abnormal_return test if dif==0
outsheet  company_id event_date abnormal_return cumulative_abnormal_return test using stats.csv if dif==0, comma name      

sort dif
by dif: egen c_abnormal_return = sum(abnormal_return)
by dif: egen ar_sd1 = sd(abnormal_return)
gen test1 =(1/sqrt(77)) * ( c_abnormal_return /ar_sd1)
outsheet dif c_abnormal_return test1 using stats1.csv if event_window==1 , comma name




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Stata 事件研究法 事件研究 tata 求指点 程序

沙发
3878 发表于 2020-1-14 18:55:03 |只看作者 |坛友微信交流群
事件研究法不一定要求平均值

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 10:58