我想问一个与State Space程序有关的问题。我有一个包含一百万个组的庞大数据集。我需要使用状态空间模型找到每个组的永久和暂时组件。我运行以下代码:
proc ucm data=work;
model price;
by group;
irregular plot=smooth;
level checkbreak plot=smooth;
estimate plot=residual;
forecast plot=forecasts lead=10 alpha=0.5;
run;
此代码效果很好。我只有一个问题。由于我有大量的团体,需要花费很多时间(大约3个月)。你知道我可以用什么方法/方法来提高效率和减少时间 在此先感谢您的帮助。
答案 0 :(得分:1)
PROC UCM
可让您输出参数估算值&没有任何ODS输出的预测表。 UCM本身就是一个计算成本很高的模型,并且按群组绘制每个预测都会对系统产生很大的影响。相反,请使用PROC UCM
禁用noprint
的任何输出,创建两个包含估算值的out
表格。预测,并在外部打印日志。
根据数据的大小,您可能需要考虑查看Forecast Server,它旨在以高度的准确性和效率解决这个问题。如此众多的群体或观察结果存在一些预测问题,专业工具将极大地改善您的模型和制作它们的时间。
请尝试使用以下代码:
/* Print log externally */
proc printto log="C:\Log\Location\Here\log.txt" new;
run;
/* Create UCM with forecast & estimate output:
- myForecast
- myEstimates
*/
proc ucm data=work
outfor=myForecast
outest=myEstimates
noprint
;
by group;
model price;
irregular;
level checkbreak;
estimate;
forecast lead=10 alpha=0.5;
run;
/* Reset log to be internal */
proc printto log=log;
run;
proc print data=myEstimates;
run;
proc print data=myForecast;
run;
答案 1 :(得分:0)
高视图是Time~1 / Resources and Resources~Money。
您的轶事处理率是每小时463组。
您使用的是什么硬件?
尝试对运行进行分区,以便一次处理K个组。