楼主: ausman
2970 6

[编程问题求助] Event study 中重复样本、宣告日停牌的处理 [推广有奖]

  • 4关注
  • 44粉丝

学科带头人

51%

还不是VIP/贵宾

-

威望
1
论坛币
22612926 个
通用积分
5239.0206
学术水平
102 点
热心指数
142 点
信用等级
77 点
经验
35745 点
帖子
961
精华
0
在线时间
2973 小时
注册时间
2005-1-12
最后登录
2024-4-18

1000论坛币
我在做并购Event study的时候,有几个小问题,请各位高手帮忙?
  *1.我的样本设计多年,我现在是分年回归再合并,但是有的公司存在一年多次并购(考虑规模之后,3次以上的不多仅占总样本1%,我基本可以只考虑3次及以下的),怎么用stata处理? 如果我要筛选出多次中并购规模最大的一个,同时考虑并购时间间隔超过一定时间的怎么做。

  *2.周末或假期公告,那么个股宣告日没有return怎么match宣告人?

  *3.交易日宣告停牌,没有交易怎么match?复牌日的收益率要考虑停牌期间的market_return怎么处理?停牌时间如果超过一定天数的剔除怎么剔?

最佳答案

jiangjin0113 查看完整内容

gen date_trade=date(date, "YMD") gen date_ann=date(date_announce, "YMD") by code: gen dum_date_announce=0 if date_ann>date_trade[_n-1] & date_ann5 & dum_date_announce==0 drop code_dum
关键词:event study Event study vent Even 样本设计 return 收益率 交易日 最大的
沙发
jiangjin0113 发表于 2013-12-11 11:38:37 |只看作者 |坛友微信交流群
gen date_trade=date(date, "YMD")   
  gen date_ann=date(date_announce, "YMD")   
by code: gen dum_date_announce=0 if date_ann>date_trade[_n-1] & date_ann<=date_trade   
replace dum_date_announce=1 if dum_date_announce!=0

replace  code_dum=code_dum[_n-1] if code==code[_n-1]
keep if code_dum==.   // nontradingnum>5 & dum_date_announce==0
drop code_dum

使用道具

藤椅
mistwj 在职认证  发表于 2013-12-11 15:57:02 |只看作者 |坛友微信交流群
我也碰到同样的问题,有哪位可以帮忙解答一下, 在第三个问题的时候,不知道在stata 里要怎么写程序,请赐教!

使用道具

板凳
xingxf 发表于 2013-12-19 09:03:25 |只看作者 |坛友微信交流群
对于你第一个问题,我没太看明白,为什么要分年回归?应该是分事件,按照固定的估算周期回归,计算模型参数。

对于第二个问题,周末发生的事件,可以前推或者后移,比如周六发生的事件,可以把事件的0 day改为周五或者下周一,这样就可以匹配了。对于这个操作,Stata命令如下:
***Weekend Adjustment***
gen weekday=dow(DateAnnounced)
gen adj_DateAnnounced=DateAnnounced
replace adj_DateAnnounced=DateAnnounced+2 if weekday==6
replace adj_DateAnnounced=DateAnnounced+1 if weekday==0

对于第三个问题,我不知道你研究什么事件,对于技术上操作原理和第二个问题类似,但对于具体的问题,你需要看看学术期刊都怎么操作的。

使用道具

报纸
ausman 发表于 2013-12-19 09:22:41 |只看作者 |坛友微信交流群
xingxf 发表于 2013-12-19 09:03
对于你第一个问题,我没太看明白,为什么要分年回归?应该是分事件,按照固定的估算周期回归,计算模型参数 ...
这样如果推迟到周一也是停牌、或者休市,仍然解决不了问题

使用道具

地板
xingxf 发表于 2013-12-21 03:06:53 |只看作者 |坛友微信交流群
ausman 发表于 2013-12-19 09:22
这样如果推迟到周一也是停牌、或者休市,仍然解决不了问题
你不用merge,用joinby也可以,把事件日期和股市日期生成一个差值,取差值最小的

使用道具

7
我爱爱德华 发表于 2014-1-10 16:49:54 |只看作者 |坛友微信交流群
楼主可以借鉴普灵斯顿那个命令程序的思想。最近我也在写这个事件研究的do文件~刚好前两天完成了。把我的给你看看哈~
sort stkcd year date
egen group_id = group(stkcd year)
sort group_id date /* replace company_id with group_id */
drop if year!=year[_n+1] & _merge==2
sort group_id date
replace datestock=datestock[_n+1] if _merge==2
replace ret=ret[_n+1] if _merge==2
replace yearstock=yearstock[_n+1] if _merge==2
duplicates drop stkcd datestock ret, force
以上命令可以替换停牌和周末。

使用道具

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

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

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

GMT+8, 2024-4-19 16:03