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的行