楼主: Star.W
12880 12

[数据管理求助] 想请教一下用Stata 做 event study 数据收集的具体步骤 [推广有奖]

  • 1关注
  • 1粉丝

已卖:1份资源

初中生

80%

还不是VIP/贵宾

-

威望
0
论坛币
34 个
通用积分
3.1847
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
524 点
帖子
11
精华
0
在线时间
21 小时
注册时间
2014-2-17
最后登录
2018-1-21

楼主
Star.W 发表于 2014-7-9 22:47:39 |AI写论文
5论坛币
Stata 基本是新手,不是很会用.在找了一些教材来看,大部分是介绍stata.
对于event study 不是很有针对性。
所以来发帖提问一下。  请大家多多指教。
我的论文题目是 并购在长期和短期是否会创造收益。 也就是abnormal return 其实。 计算采用两步法,第一步利用pre-event period计算market model的系数alpha和beta。第二部,在event period内根据已经获得的alpha和beta计算abnormal returns。

暂时 我找出了样本 100家上市公司的并购 从01年到10年的
因为想分别测长期和短期 所以 估计期有俩个(-80,-20)(-5,0) 考察期(0, 5)(0, 365)
之后找对应的沪深300作为Index

现在的问题是 不太会运用stata 来合并数据。
因为公布时间不同,所以每个都要手动查找, 但是我看到论坛上 有这么一个思路


用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命令会生成一个很大的数据文件,因此,需要你的电脑内存比较大。  
keep gap statsby 都是什么意思? 搞的不是很明白。
我具体操作还是一知半解 希望有高手来回答一下我的问题。 如何合并。另外 国泰安数据库具体如何查找能告知我,就更感谢了。

最佳答案

xingxf 查看完整内容

如果你觉得用market model计算CAR比较复杂,你用market-adjusted CAR也可以啊,market-adjusted CAR是直接用firm return减去market return
关键词:event study study Stata Event vent 具体步骤

沙发
xingxf 发表于 2014-7-9 22:47:40
如果你觉得用market model计算CAR比较复杂,你用market-adjusted CAR也可以啊,market-adjusted CAR是直接用firm return减去market return

藤椅
Star.W 发表于 2014-7-10 19:21:10
帮我解释解释 那个思路也好啊。。。。

板凳
Star.W 发表于 2014-7-10 21:02:04
xingxf 发表于 2014-7-10 19:54
如果你觉得用market model计算CAR比较复杂,你用market-adjusted CAR也可以啊,market-adjusted CAR是直接用 ...
我的情况是, 我对应不起来。。 就是firm return 和market return 不在一个表了。。。。不可能一个一个去复制粘贴。。。就在研究如何把这两个放到一个表里。。。。

报纸
xingxf 发表于 2014-7-11 07:32:20
Star.W 发表于 2014-7-10 21:02
我的情况是, 我对应不起来。。 就是firm return 和market return 不在一个表了。。。。不可能一个一个去 ...
这个要用merge命令,你需要好好研究一下Stata

地板
xingxf 发表于 2014-7-11 07:45:53
不知道你的数据格式,如果研究美国数据用WRDS的话,主要需要用到上面提到的几个命令。如果是研究欧洲或中国问题用Datastream的话,你还需要额外学习一下reshape命令,用reshape命令将时间序列格式的数据转换为面板格式。

7
Star.W 发表于 2014-7-12 23:02:40
xingxf 发表于 2014-7-11 07:45
不知道你的数据格式,如果研究美国数据用WRDS的话,主要需要用到上面提到的几个命令。如果是研究欧洲或中国 ...
我的数据终于是准备 好了 按照普林斯顿那个做的, 但是在跑循环的时候又出现了问题。
gen predicted_return=.
egen id=group(company_id)
forvalues i=1(1)N {
        l id company_id if id==`i' & dif==0
        reg ret market_return if id==`i' & estimation_window==1
        predict p if id==`i'
        replace predicted_return = p if id==`i' & event_window==1
        drop p
}
出现这个错误,
invalid syntax
r(198);
不知道是为什么,能帮我解释一下这个循环吗 谢谢

8
Star.W 发表于 2014-7-13 07:42:14
xingxf 发表于 2014-7-11 07:45
不知道你的数据格式,如果研究美国数据用WRDS的话,主要需要用到上面提到的几个命令。如果是研究欧洲或中国 ...
整个程序已经跑出来了,
循环中的N 是样本个数嘛? 还是其他的?不知道我理解的对不对?
但是现在的问题 我还想做月度数据的BHAR
有没有好的范例?
或者如何在这个基础上改进?
谢谢~~~

9
xingxf 发表于 2014-7-13 22:39:39
Star.W 发表于 2014-7-13 07:42
整个程序已经跑出来了,
循环中的N 是样本个数嘛? 还是其他的?不知道我理解的对不对?
但是现在的问题 ...
你可以按普林斯顿的这个做,但是我觉得这个版本的用途主要是帮助你学习如何使用Stata,给你一个思路。由于普林斯顿提供的程序,它基于比较老的Stata版本,目前来讲,你最好根据我提供的思路做,也就是你贴在最前面的思路。
对于BHAR的计算,你要用到连乘,可参考下面的帖子
https://bbs.pinggu.org/thread-2178506-1-1.html

10
Star.W 发表于 2014-7-13 22:48:46
xingxf 发表于 2014-7-13 22:39
你可以按普林斯顿的这个做,但是我觉得这个版本的用途主要是帮助你学习如何使用Stata,给你一个思路。由于 ...
我直接下载了 连乘的 command prod
但是我卡在最后的编程了
需要做一个循环
大致思路是这样求BHAR
gen r1=1+ret
gen r2=1+predict_return
egen r3 = prod(r1) if event_window==1 这里必须要一个公司 这个是dummy 判断在检测期呢
egen r4 = prod(r2) if event_estimator==1 这里必须同一个公司的 这个是也是dummy 判断在估计期内
gen BHAR= r4-r3
并且一共100个 一个是一个循环。。。。对于初学没人教的。。。完全不会做。。。。
能提供一下思路嘛。。。。谢谢

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-2 06:55