全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
3355 8
2014-02-15
下面是princeston event study的code
http://dss.princeton.edu/online_help/analysis/eventstudy.html

其中未考虑到在事件那天股市休盘或者那个股票停牌   对应到princeton中的程序段应该在:

use acqstockprice_3,replace
sort group_id stockdate
by group_id: gen datenum=_n
by group_id: gen target=datenum if stockdate==event_date //Cautious here:may not on the trading day or the stock is suspended on that day.
egen td=min(target),by(group_id)
drop target
gen dif=datenum-td // dif: count the number of days from the observation


注意我们该怎么把蓝色修改一下 做一个循环 使得程序找不到stockdate==event_date时,这个产生的target不是空值?

欢迎各位回答, 提出好的解
二维码

扫码加我 拉你入群

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

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

全部回复
2014-2-16 20:35:43
想增加一个循环让它找到离event_day 最近的trading day
二维码

扫码加我 拉你入群

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

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

2014-2-16 23:36:17
gen double d=abs(event_day-trading_day)
egen double x= min(d), by(group_id)
gen evt_dat_near_t_day =trading_day if x==d

?
二维码

扫码加我 拉你入群

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

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

2014-2-17 11:08:26
jjjj6666 发表于 2014-2-16 23:36
gen double d=abs(event_day-trading_day)
egen double x= min(d), by(group_id)
gen evt_dat_near_t_day ...
Much thanks, will take a look.
二维码

扫码加我 拉你入群

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

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

2014-2-17 20:25:49
jjjj6666 发表于 2014-2-16 23:36
gen double d=abs(event_day-trading_day)
egen double x= min(d), by(group_id)
gen evt_dat_near_t_day ...
I solve the problem like this:

gen absdif=abs(stockdate-event_date)
egen abstd=min(absdif),by(group_id)
replace dif=abstd-absdif if dif==. & event_date>=stockdate
replace dif=absdif-abstd if dif==. & event_date<stockdate
二维码

扫码加我 拉你入群

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

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

2014-2-17 22:44:11
jjjj6666 发表于 2014-2-16 23:36
gen double d=abs(event_day-trading_day)
egen double x= min(d), by(group_id)
gen evt_dat_near_t_day ...
QQ图片20140217223525.jpg QQ图片20140217223504.jpg
Hi, I met a new obstable when running the regression below, the error is shown as above.
The reason is, in some certain cases, the first row of the return is empty (something wrong with the data), but the security info of the first stockdate often would not be used in the regression, but stata shows "no observations".

How could i jump it or neglect it? I tried to drop id=194, but it does not work.

gen predicted_return=.egen id=group(company_id)  /* for multiple event dates, use: egen id = group(group_id) */forvalues i=1(1)N { /*note: replace N with the highest value of id */         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}
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群