全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2153 7
2010-08-13
我的数据集是这样的:
date                        name              rt(每日收益)
1995-01-01            A                      ……
1995-01-02            A                      ……
……
……
2009-12-31            A                         ……

1995-01-01             B                           ……

……
2009-01-01            B                              ……

……
一共有1000多个股票,每个股票都是在95年到2009年这个时间区间上,但不是每一天都有收益率,有的可能是从2002年6月到2009年12月31等。

就是类似这样的数据集,

我想实现(最终得到数据集,不是要输出结果):
1.首先计算abc=r(t)*r(t-1),注:每个月第一天该值为零。
2.然后把每个月中的每天的abc相加求和(时间序列上)。
3.得到每只股票月度abc后,求每年每月所有股票abc的均值(横截面上)。

本人对sas比较白,一知半解,希望大家帮下忙,如果很复杂,可以以论坛币答谢,绝不吝啬。谢谢。
二维码

扫码加我 拉你入群

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

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

全部回复
2010-8-13 10:04:56
复制代码
二维码

扫码加我 拉你入群

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

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

2010-8-13 11:49:44
很好啊:借问一个问题---如果其中date不按照顺序给出,但是r(t)*r(t-1)是和日期的顺序相关。用index有再排列的功能吗?如果没有,那和by date_month notsorted; 有什么区别呢?如果本来就排列就绪,那么index的好处在哪里呢?(我想这是你用index的关键考虑吧)。
二维码

扫码加我 拉你入群

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

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

2010-8-13 13:29:52
3# jingju11
眼真尖,又被你抓到...
确实依赖原始数据的排序,不然r(t-1)成问题
用index只是考虑数据集可能比较大,不想proc sort
二维码

扫码加我 拉你入群

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

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

2010-8-13 15:10:47
数据集确实比较大,有300多万,元数据集有拍过序的,by name date
二维码

扫码加我 拉你入群

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

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

2010-8-14 10:24:25
一。数据集确实比较大,有300多万,元数据集有拍过序的,by name date。

其实我问题的公式是这样的,EWAVt=(1/Nt)∑[∑r(id)**2+2*∑r(id)*r(id-1)]

第一个∑从i=1--Nt,Nt是第t个月的股票数;第二个∑从d=1--Dt,Dt是第t个月的天数;第三个∑从d=2--Dt,r(id)就是我前面说的r(t);

这和我前面说的唯一差别是多了一个r(id)的平方,和后面躲乘以了个2,本来以为自己可以修改下程序实现,发现不怎么懂,希望高手们给修改下。

主要意思是:(最终得到数据集,不是要输出结果):
1.首先计算abc=r(id)*r(id-1),注:每个月第一天该值为零,计算edf=r(id)**2,
2.然后把每个月中的每天的abc相加求和(时间序列上),记为sum1;把每个月中的每天的edf相加求和(时间序列上),记为sum2,
3.得到每只股票月度sum1,sum2后,求得sum3=sum2+2*sum1,最后得到每年每月所有股票sum3和的均值(横截面上,即这个和除以当月股票数量)。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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