Hi All,
I'm trying to forecast a non-seasonally adjusted unemployment rate but when run through the Time Series Forecasting System i get an error that says
"
ERROR: The estimation algorithm did not converge after 150 iterations.
ERROR: Forecasting was not performed because estimation was not done.
"
The source for my data comes right form the LAUS BLS webpage.
any hints?
Thanks!
Hello -
It seems to me that you are running the Time Series Forecasting System to "fit model automatically" - I was able to replicate the behavior you are experiencing.
As far as I can tell the only model which is failing is ARIMA(2,1,2)(0,1,1)s NOINT - all other models run fine.
The ARIMA procedure primarily uses the computational methods outlined by Box and Jenkins. Marquardt’s method is used for the nonlinear least squares iterations. Since this technique is iterative, it might run into convergence problems. The ARIMA procedure provides access to some options to tune this process - however, not all of these options are surfaced in the Time Series Forecasting System.
In your particular case I was able to address the convergence issue by increasing the maximum number of iterations from 150 (default in Time Series Forecasting System) to 500:
proc arima data=YOURDATA;
identify var=URATE( 1,12 )
nlag=29 noprint;
estimate p=2 q=( 1,2 )( 12 )
noint method=ML
outmodel=_est_ converge=.0001 delta=.0001 maxiter=500
noprint;
forecast
id=DATE interval=MONTH align=BEGINNING lead=0
alpha=0.05 out=_fitout_ noprint;
quit;
For details please check out: http://support.sas.com/documentation/cdl/en/etsug/63939/HTML/default/viewer.htm#etsug_arima_sect036....
Hope this helps,
Udo
Hello -
It seems to me that you are running the Time Series Forecasting System to "fit model automatically" - I was able to replicate the behavior you are experiencing.
As far as I can tell the only model which is failing is ARIMA(2,1,2)(0,1,1)s NOINT - all other models run fine.
The ARIMA procedure primarily uses the computational methods outlined by Box and Jenkins. Marquardt’s method is used for the nonlinear least squares iterations. Since this technique is iterative, it might run into convergence problems. The ARIMA procedure provides access to some options to tune this process - however, not all of these options are surfaced in the Time Series Forecasting System.
In your particular case I was able to address the convergence issue by increasing the maximum number of iterations from 150 (default in Time Series Forecasting System) to 500:
proc arima data=YOURDATA;
identify var=URATE( 1,12 )
nlag=29 noprint;
estimate p=2 q=( 1,2 )( 12 )
noint method=ML
outmodel=_est_ converge=.0001 delta=.0001 maxiter=500
noprint;
forecast
id=DATE interval=MONTH align=BEGINNING lead=0
alpha=0.05 out=_fitout_ noprint;
quit;
For details please check out: http://support.sas.com/documentation/cdl/en/etsug/63939/HTML/default/viewer.htm#etsug_arima_sect036....
Hope this helps,
Udo
Thanks udo, that was very helpful. Using the code you've provided how can i obtain a forecast of the urate say a year from now?
Thanks!
Hello -
Sure - you will need to change the lead option to 12 (as you have monthly data) - I also added a plot statement to visualize the forecasts:
proc arima data=YOURDATA plots(only)=forecast(forecasts);
identify var=URATE( 1,12 )
nlag=29 noprint;
estimate p=2 q=( 1,2 )( 12 )
noint method=ML
outmodel=_est_ converge=.0001 delta=.0001 maxiter=500
noprint;
forecast
id=DATE interval=MONTH align=BEGINNING lead=12
alpha=0.05 out=forecasts;
quit;
You will find a table call forecasts in your WORK library.
Alternatively you may want to run our new ESM procedure:
proc esm data=YOURDATA out=_null_ outfor=esmfc plot=forecasts;
id date interval=month;
forecast urate / method=addwinters;
run;
Thanks!
Udo
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.
Find more tutorials on the SAS Users YouTube channel.