全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
8985 7
2015-08-11
我最近在做一个选股策略,每1个月出一个股票组合,得出一个当月收益率。该组合的时间跨度为7年,即94个月。

我现在想计算的是:加入一个变量,保存这些月份中截止每一个月的累计收益率

即:

——时间——    ——当月收益率——   ——截止当时累积收益率——
     2007.1                     0.1                                    0.1
     2007.2                     0.1                                   0.21(=(1+0.1)*(1+0.1)-1)
     2007.3                     0.2                                  0.452 (=(1+0.21)*(1+0.2)-1)
etc.


请问这样一个变量的计算,如何用SAS得以实现?

试过一些方法,都会出现只有第一行结果其余为“.”或者干脆全部为空这样的情况。

给的提示是缺失值是有由于引用缺失值而产生的。

不知各位大神有没有什么好的解决思路?

多谢各位大神指点!

8.11

二维码

扫码加我 拉你入群

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

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

全部回复
2015-8-11 17:58:14
sas的机制是变量的运算,你在不同的观测里写不同的公式,是不能识别的,建议你给每个月的累计收益率都分别建立一个新的变量,最后要统计的时候,再统一赋值给你要统计的变量。
二维码

扫码加我 拉你入群

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

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

2015-8-11 20:32:55
复制代码




Obs date v1 v2
1 17167 0.1 0.100
2 17198 0.1 0.210
3 17226 0.2 0.452

這樣應該可以
二维码

扫码加我 拉你入群

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

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

2015-8-12 14:55:18
as223678912 发表于 2015-8-11 20:32
Obs date v1 v2
1 17167 0.1 0.100
2 17198 0.1 0.210
嗯嗯,试了一下,可以了!

太感谢!跪拜大神!

原来这里不需要用到lag的啊,我之前也用过retain v2 0; 但是下一句写的是 v2=(1+lag(v2))*(1+v1)-1,就报错了。
太谢谢咯~
二维码

扫码加我 拉你入群

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

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

2015-8-16 00:08:12
学习了
二维码

扫码加我 拉你入群

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

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

2017-10-2 19:45:29
as223678912 发表于 2015-8-11 20:32
Obs date v1 v2
1 17167 0.1 0.100
2 17198 0.1 0.210
可不可以看一下运行出这样结果的代码
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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