《event_study_with_stata》.pdf

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《event_study_with_stata》.pdf

事件研究法在stata中的运用 数据来源: use /sampledata/eventdates.dta save hh:/th/thesiis//eventdtdattes use /sampledata/stockdata.dta, clearclear save h:/thesis/stockdata 将eventdates.dta与stockdata.dta两个数据文件合并, 得到接下来演示的得到接下来演示的stockdata2stockdata2.dtadta文件文件 1 修正数据以及计算事件与估计窗口 事件窗的计算可以通过事件窗的计算可以通过 日期日期和和交易日交易日两个数据来计算两个数据来计算。。 要保证对正确的观测值进行分析,必须创建一个变量dif,记录观 测值距离事件发生日期的天数。 对交易日: sort company_idd ddate by company_id: gen datenum=_n by company_id: gen target=datenum if date==event_date egen tdtd=miin(t(target)t), bby((company_idid)) drop target gen dif=datenum-td 对日期: gen dif=date-event_date 我们选择事件发生的前后5天的数据,即一共11 天的数据作为事件窗天的数据作为事件窗,选择事件发生前选择事件发生前6060天到前天到前 30天共30个交易日作为估计窗口: byby companycompany_id:genid:gen eventevent_windowwindow=11 ifif difdif=-55 difdif=55 egen count_event_obs=count(event_window),by(company_id) by company_id:gen estimation_window=1 if dif-30 dif=-60 egen countt_estt_obbs=count(t(estitimatition_wiinddow)),bby((company_id)id) replace event_window=0 if event_window==. repplace estimation_window=0 if estimation_window==. 修正数据: drop if count_event_obs 11 dropdrop ifif countcount_estest_obsobs 3030 同时可以删除一些不会将用的变量, 例如: ddrop countt_eventt_obbs countt_estt_obbs 利用估计窗口的数据计算得到股票的正常收益,在 statastata中取其变量名为中取其变量名为predictedpredicted_returnreturn set more off gen predicted_return=. egen id=group(company_id) forvaluesforvalues ii=1(1)1741(1)174 {{ reg ret market_return if id==`i estimation_window==1 predict p if id==`i replacereplace predictedpredicted_returnreturn == pp ifif id==id==`ii eventevent_window==1window==1 drop p } 计算股票在事件窗内的异常收益AR 以及累计 超额收益超额收益CARCAR sort id date gen abnormal_return=ret-predicted_return if event_window==1 by id: gen cumulative_abnormal_return= sum(abnormal_return) gengen n=dif+6n=dif+6 byby n,sort:egenn,sort:egen carcar_avgavg=mean(car)mean(car) by n,sort:egen ar_avg=mean(ar) sort id n keep if n=1 n

文档评论(0)

wgvi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档