【发布时间】:2017-11-21 11:16:31
【问题描述】:
我正在处理一个包含多只股票的数据集,并且我将一个带有事件的数据集合并到它上面(对于股票,每只股票在一段时间内的几个事件)。
现在,对于事件研究,我想创建几个变量作为虚拟变量并创建窗口:-60 到 -11 天、-5 到 -1 天和公告日加 +1 天。 重要的是两件事:
- 必须按库存(窗口不应在库存之间结转)
- 一个公告/活动日 (ann_day) 不应破坏另一个活动的窗口。
我尝试了以下方法,但它只是给了我一个窗口,并没有考虑到不同的库存和损坏的窗口:
proc sql;
create view event_study as
select distinct b.ann_date,a.date,a.dayid-b.dayid as event_time, a.stock,a.return
from Dataset_full as a,Announcements as b
where a.dayid-b.dayid between -60 and 11 and a.secid=b.secid
order by a.stockb.ann_date,event_time;
quit;
一些信息:公告日是事件 dataset_full 有库存、日期、回报、数量。每个日历/交易日一行。 公告有股票、公告日期和公告信息(每条公告一行) 数据应如下所示:
Stock Date Ann_date flag_minus60_minus11 flag_minus5_minus1 flag_day0_day1
A 1/01/2016 1
A 2/01/2016 1
A 3/01/2016
A 4/01/2016 4/01/2016 1
A 5/01/2016 1
A 6/01/2016
A 7/01/2016
A 8/01/2016
A 9/01/2016
A 10/01/2016
A 11/01/2016
A 12/01/2016
A 13/01/2016
A 14/01/2016
A 15/01/2016
B 1/01/2016 1
B 2/01/2016 1
B 3/01/2016 1
B 4/01/2016 1
B 5/01/2016 1
B 6/01/2016 1
B 7/01/2016
B 8/01/2016
B 9/01/2016
B 10/01/2016
B 11/01/2016 1
B 12/01/2016 1
B 13/01/2016 1
B 14/01/2016 1
B 15/01/2016 1
B 16/01/2016 16/01/2016 1
B 17/01/2016 1
B 18/01/2016 1
B 19/01/2016 1
B 20/01/2016 20/01/2016 1
B 21/01/2016 1
B 22/01/2016
B 23/01/2016
B 24/01/2016
B 25/01/2016
【问题讨论】:
标签: sas time-series