sas中的预测

Posted

技术标签:

【中文标题】sas中的预测【英文标题】:Forecasting in sas 【发布时间】:2016-01-30 23:47:22 【问题描述】:

我有一个关于 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

【问题讨论】:

不清楚(对我来说)你的问题是什么。 【参考方案1】:

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;

【讨论】:

非常感谢 Stu 花时间回答我的问题。这是正确的答案,这就是我所做的。

以上是关于sas中的预测的主要内容,如果未能解决你的问题,请参考以下文章

SAS:用所有数据绘制预测数据

sas神经网络:构建人工神经网络模型来识别垃圾邮件

sas神经网络:构建人工神经网络模型来识别垃圾邮件

SAS的功能模块介绍

SAS时间序列模型预测未来航班数量

sas如何计算相邻观测的差值