楼主: lilylini
6003 7

[编程问题求助] event study,每个公司可能有多个观测事件的程序 [推广有奖]

  • 0关注
  • 3粉丝

硕士生

2%

还不是VIP/贵宾

-

威望
0
论坛币
820 个
通用积分
3.1800
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
524 点
帖子
43
精华
0
在线时间
170 小时
注册时间
2008-5-30
最后登录
2023-8-11

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
最近在学习做event study,在论坛上找了课件event study with stata,课件帮我理清了大体思路,但课件中的程序应该是针对每个公司在观测期间内,观测事件只发生了一次的情况,由以下程序便可看得出来      sortcompany_id date

bycompany_id: gen datenum=_n

bycompany_id: gen target=datenum if date==event_date

egentd=min(target), by(company_id)

droptarget

gendif=datenum-td


但我现在碰到的问题是每个公司可能有一个或多个观测事件的,截取部分数据如下:

stkcddate

6

2007-4-17

19

2009-6-25

19

2009-12-4

23

2010-6-29

23

2010-8-27

29

2007-5-25

32

2007-11-8

32

2007-12-6

32

2007-12-21


请教论坛里的各位老师,这种情况该如何编程呢?之前我看有人说论坛以前有说过这问题,但我仔细搜过也没找到那帖子,或者把帖子的链接告诉我一下也行。谢谢各位老师了!



二维码

扫码加我 拉你入群

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

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

关键词:event study Event study vent Even 程序

本帖被以下文库推荐

沙发
xingxf 发表于 2013-9-9 21:27:35 |只看作者 |坛友微信交流群
你说的课件是普林斯顿大学的那个吧,那个材料是根据比较老的版本Stata做的,现在Stata 12更新了许多命令,比如merge的语法已经不一样了,另外新增加的joinby命令非常有用。你说做event study,主要是想计算abnormal return吧。比较常用的方法是利用market model计算abnormal return。计算采用两步法,第一步利用pre-event period计算market model的系数alpha和beta。第二部,在event period内根据已经获得的alpha和beta计算abnormal returns。

用Stata编程解决这个问题的难点在第一步,最重要的命令是joinby。你手上应该有两个数据文件,一个数据文件记录了event,具体说有这个event的编号,公司代码和事件发生的时间。另一个数据文件包含了所有公司的daily data,通常是公司代码,时间,daily return。用joinby命令对两个数据文件进行合并,你需要仔细察看joinby的帮助文档,你就明白它的作用了。生成新的数据文件,在新的数据文件中生成一个新变量gap,gap等于event发生时间与公司daily时间的差值,如果你的estimation period定为event发生前的【-365,-28】时间窗口,那么,你keep gap为这个天数之内的观察值。然后,用statsby结合reg生成每个firm-event的alpha和beta。第一步解决了以后,第二步就很简单了,abnormal return=return - beta*(market return)- alpha。以上思路是不受一个公司多次事件影响的。但是,对于数据量大的情况,joinby命令会生成一个很大的数据文件,因此,需要你的电脑内存比较大。

解决实证问题,最主要要明白基本原理,然后要熟悉软件命令,编程的问题,每个人思路不一样,程序不一样,但是结果是一样的。
已有 5 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
sophiejxy + 1 + 1 + 1 精彩帖子
sherry19911106 + 1 + 1 + 1 精彩帖子
momingqimiao7 + 2 + 2 + 2 精彩帖子
crasteham + 5 + 3 + 3 + 3 精彩帖子
crystal8832 + 10 + 10 + 1 + 1 + 1 热心帮助其他会员

总评分: 经验 + 10  论坛币 + 15  学术水平 + 8  热心指数 + 8  信用等级 + 8   查看全部评分

使用道具

藤椅
lilylini 发表于 2013-9-11 20:15:59 |只看作者 |坛友微信交流群
xingxf 发表于 2013-9-9 21:27
你说的课件是普林斯顿大学的那个吧,那个材料是根据比较老的版本Stata做的,现在Stata 12更新了许多命令,比 ...
好的,谢谢老师,感谢您的详细答复

使用道具

板凳
geniusy 发表于 2013-9-16 01:41:05 |只看作者 |坛友微信交流群
xingxf的思路是完全正确的,不过如果碰到数据量特别大,事件数比较大的,估计alpha和beta的时候速度会特别慢,这时候推荐用sas来估计。以我做过的一篇论文来说,事件有6万个左右,i5的cpu+8G内存估计参数要超过1小时,sas只需要10秒钟就搞定了。
已有 1 人评分经验 热心指数 收起 理由
crystal8832 + 10 + 1 热心帮助其他会员

总评分: 经验 + 10  热心指数 + 1   查看全部评分

使用道具

报纸
xingxf 发表于 2014-6-26 23:10:26 |只看作者 |坛友微信交流群
后来和geniusy在另一个帖子里讨论个这个问题。需要指出的是,通过程序优化,具体来说,把大样本分组,估算系数后再合并,6000个回归系数的估算8分钟以内就可以完成。用SAS进行估算也不会比Stata快,10秒完成是不现实的。
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
crystal8832 + 20 + 1 + 1 补偿

总评分: 论坛币 + 20  学术水平 + 1  热心指数 + 1   查看全部评分

使用道具

地板
beanyao 学生认证  发表于 2017-8-25 12:32:34 |只看作者 |坛友微信交流群
geniusy 发表于 2013-9-16 01:41
xingxf的思路是完全正确的,不过如果碰到数据量特别大,事件数比较大的,估计alpha和beta的时候速度会特别慢 ...
你好,请问能分享下这个操作的sas code吗?

使用道具

7
refound 学生认证  发表于 2019-8-24 10:10:23 |只看作者 |坛友微信交流群
请问楼主这个问题解决了吗?

使用道具

请问解决了吗?

使用道具

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

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

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

GMT+8, 2024-4-26 22:58