楼主: 梧桐资本
1788 2

[问答] SAS小弱求教事件研究法开始数据处理的问题 [推广有奖]

  • 0关注
  • 0粉丝

高中生

0%

还不是VIP/贵宾

-

威望
0
论坛币
312 个
通用积分
4.9491
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
142 点
帖子
7
精华
0
在线时间
31 小时
注册时间
2013-10-2
最后登录
2024-2-27

楼主
梧桐资本 发表于 2017-2-2 13:06:42 |AI写论文
300论坛币
数据样本大致就是附件图片的样子,第三行的日期是每支股票事件发生日披露的日期,每列是股票的日收益率,我想截取每支股票事件发生日前后的150个交易日前后的日收益率,请问各位大神如何用sas实现?

1486007491(1).png (33.19 KB)

数据样本

数据样本

关键词:事件研究法 数据处理 事件研究 研究法 日收益率 收益率 交易日 图片 如何 样本

沙发
prince315 在职认证  发表于 2017-2-3 11:41:52
简单看了下,这里每只股票的日收益率应该是完全覆盖所有交易日且连续的。只需要
1. 在每只股票上定位到披露日所在行数i,数据应该已经按交易日升序排列好了
2. 再保留观测[i-150,i+150]共301条
3. 再将数据转置重命名成方便处理的格式,每只股票一条观测
4. 并且将多只股票合并成完整数据集
这样应该就OK了

藤椅
l1i2n3i4n5g 在职认证  发表于 2017-2-3 22:42:02
/*建立数据集*/
data test;
input date : $ 20. stk1 : $ 20.;
cards;
. 000791.SZ
. 甘肃电投
. 2010-7-1
. .
2010-6-21        -9.86
2010-6-22        -9.85
2010-6-23        -9.84
2010-6-24        -9.83
2010-6-25        -9.82
2010-6-28        -9.81
2010-6-29        -9.8
2010-6-30        -9.79
2010-7-1        -9.78
2010-7-2        -9.77
2010-7-5        -9.76
2010-7-6        -9.75
2010-7-7        -9.74
2010-7-8        -9.73
2010-7-9        -9.72
2010-7-12        -9.71
2010-7-13        -9.7
;
run;

/*事件发生日披露的日期赋值给宏变量stkdt1*/
/*并且把该日顺序号赋值给宏变量n*/
data test;
set test;
n=_n_;
if n=3 then
        call symput('stkdt1',stk1);
if input(date,yymmdd10.)=input("&stkdt1.",yymmdd10.) then
        call symput('n',n);
run;

/*根据宏变量n选择所需时间范围的数据*/
data test1;
set test;
where n<=4 or &n.-5<=n<=&n.+5;
run;
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
prince315 + 20 + 10 + 1 + 1 + 1 精彩帖子

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

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-24 21:38