SAS中用于相关性计算的动态滚动窗口
问题:我有如下数据集-SAS中用于相关性计算的动态滚动窗口,sas,Sas,问题:我有如下数据集- Comp date time returns 1 12-Aug-97 10:23:38 0.919292648 1 12-Aug-97 10:59:43 0.204139521 1 13-Aug-97 11:03:12 0.31909242 1 14-Aug-97 11:10:02 0.989339371 1 14-Aug-97 11:19:27 0.08394389 1
Comp date time returns
1 12-Aug-97 10:23:38 0.919292648
1 12-Aug-97 10:59:43 0.204139521
1 13-Aug-97 11:03:12 0.31909242
1 14-Aug-97 11:10:02 0.989339371
1 14-Aug-97 11:19:27 0.08394389
1 15-Aug-97 11:56:17 0.481199854
1 16-Aug-97 13:53:45 0.140404929
1 17-Aug-97 10:09:03 0.538569786
2 14-Aug-97 11:43:49 0.427344962
2 14-Aug-97 11:48:32 0.154836294
2 15-Aug-97 14:03:47 0.445415114
2 15-Aug-97 9:38:59 0.696953041
2 15-Aug-97 13:59:23 0.577391987
2 15-Aug-97 9:10:12 0.750949097
2 15-Aug-97 10:22:38 0.077787596
2 15-Aug-97 11:07:57 0.515822161
2 16-Aug-97 11:37:26 0.862673945
2 17-Aug-97 11:42:33 0.400670247
2 19-Aug-97 11:59:34 0.109279307
这些只是每个公司在某个日期和时间层面上的股价回报。
我需要计算每个红利和日期值组合在10天内收益的自相关(1度)。正如你所看到的,我的时间序列不是连续的,它有周末和公共假期的休息时间。在这种情况下,如果我需要取10天的范围,我不能使用intnk函数,因为向日期列添加10天可能会包括我没有数据的周六/周日,因此,我的自相关值将受到影响。如何使此范围具有动态性
我发现了这个问题,我认为可能会有所帮助,但是,同样的intnx问题也存在。您可以使用
INTERVALDS
系统选项来定义适合您需要的自定义间隔。有关更多详细信息,请参阅
基本概念是创建一个包含所有可能日期(或日期时间)的数据集,并为每个数据集定义一个间隔值,然后在使用特定间隔名称时通过系统选项告知SAS使用该数据集。然后正常使用INTNX
否则,您可以对数据执行PROC FREQ
,以获得唯一的天数,然后使用该天数创建一个天数计数器;然后,不必使用intnx
创建fromDate
,只需使用SQL获取日期比当前日期小10的行