是否可以使用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中。
答案 0 :(得分:2)
proc score
不支持自相关变量。获得样本外分数的最简单方法是将proc arima
和data
步骤结合起来。以下是使用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;
您可以将此代码转换为自己的通用宏。在未来的这种方式,如果你想得分,你可以简单地调用宏程序来获得你需要的东西。