我对SAS有疑问。我有两个时间序列S1和S2。
对于S2,我有未来3年的预测值。我想用S2预测S1及其预测值。通常,如果我没有任何系列的预测值,我会使用这样的东西。
(使用价格作为ARIMA(1,1,1)的输入系列预测销售
proc arima data=mydata;
identify var=price(1);
estimate p=2;
identify var=sales(1) crosscorr=price(1);
estimate p=1 q=1 input=price;
forecast lead=12 interval=month id=date out=results;
run;e here
答案 0 :(得分:0)
PROC ARIMA
是交互式的,因为它分别执行每个语句。因此,它也可以使用从前一个语句派生的信息。要使用输入变量的预测,您需要在其下方添加另一个forecast
语句。这将在内部生成输入变量的预测,并允许您将该预测用作您感兴趣的主变量的输入。
proc arima data=mydata;
identify var=price(1) noprint;
estimate p=2 noprint;
forecast lead=12 noprint;
identify var=sales(1) crosscorr=(price(1) );
estimate p=1 q=1 input=price;
forecast lead=12 interval=month id=date out=results;
run;
如果您已经有预测并且它们位于单独的数据集中,只需将两个数据集合并在一起:
data want;
merge have_s1
have_s2;
by date;
run;
dataset: want
date s1 s2
1/1/15 10 96
2/1/15 15 80
3/1/15 9 120
.... ... ...
12/1/15 4 160
1/1/16 . 133
2/1/16 . 121
3/1/16 . 100
然后,您可以对数据集运行PROC ARIMA
,只要您拥有s1
的值,它就会填写s2
的缺失值。
proc arima data=want;
identify var=s1(1) crosscorr=(s2(1) );
estimate p=1 q=2;
forecast lead=12 interval=month id=date out=results;
run;