SAS可以将数据集评分为ARIMA模型吗?

时间:2017-01-25 23:29:10

标签: sas

是否可以使用PROC ARIMA在SAS中创建的模型对数据集进行评分?

这是我的代码无效:

proc arima data=work.data;
identify var=x crosscorr=(y(7) y(30));
estimate outest=work.arima;
run;

proc score data=work.data score=work.arima type=parms predict out=pred;
var x;
run;

当我运行此代码时,我从PROC SCORE部分收到一条错误,上面写着“ERROR:Variable x not found”。 x列位于数据集work.data中。

1 个答案:

答案 0 :(得分:2)

proc score不支持自相关变量。获得样本外分数的最简单方法是将proc arimadata步骤结合起来。以下是使用sashelp.air的示例。

第1步:生成历史数据

我们将1960年作为我们的分数数据集。

data have;
    set sashelp.air;
    where year(date) < 1960;
run;

第2步:生成模型并进行预测

nooutall选项告诉proc arima仅生成12个未来预测。

proc arima data=have;
    identify var=air(12);
    estimate p=1 q=(2) method=ml;
    forecast lead=12 id=date interval=month out=forecast nooutall;
run;

第3步:得分

将预测和完整历史数据集合并在一起,以了解模型的效果。我个人喜欢update statement,因为它不会替换任何缺少值的内容。

data want;
    update forecast(in=fcst) 
           sashelp.air(in=historical);
    by Date;

    /* Generate fit statistics */
    Error    = Forecast-Air;
    PctError = Error/Air;
    AbsPctError = abs(PctError);

    /* Helpful for bookkeeping */
    if(fcst) then Type = 'Score';
        else if(historical) then Type = 'Est';

    format PctError AbsPctError percent8.2;
run; 

您可以将此代码转换为自己的通用宏。在未来的这种方式,如果你想得分,你可以简单地调用宏程序来获得你需要的东西。