问题:我的数据集如下 -
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
这些只是每个公司在日期和时间级别的股价回报。 我需要计算每个Comp和日期值组合在10天内返回的自相关(1度)。如您所见,我的时间序列不连续,周末和公众假期休息。在这种情况下,如果我需要10天的范围,我不能使用intnk函数,因为在日期列添加10天可能包括星期六/星期日我没有数据和因此,我的自相关值将受到损害。如何使此范围动态化?
我发现这个问题Calculating rolling correlations in SAS我认为可能会有所帮助,但话又说明,存在同样的问题。
答案 0 :(得分:0)
您可以使用INTERVALDS
系统选项定义符合您需求的自定义时间间隔。有关详细信息,请参阅this article。
基本概念是您创建一个包含所有可能日期(或日期时间)的数据集,并为每个日期时间定义一个间隔值,然后在使用特定间隔名称时通过系统选项告诉SAS使用该数据集。然后照常使用INTNX
。
否则,您可以只执行PROC FREQ
数据以获取唯一的日期,然后使用它来创建日期计数器;然后,您可以使用SQL来获取日期比当前日期少10的行,而不是使用fromDate
创建intnx
。