BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
SAShole
Pyrite | Level 9

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!

1 ACCEPTED SOLUTION

Accepted Solutions
udo_sas
SAS Employee

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

View solution in original post

3 REPLIES 3
udo_sas
SAS Employee

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

SAShole
Pyrite | Level 9

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!

udo_sas
SAS Employee

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

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
Multiple Linear Regression in SAS

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.

Discussion stats
  • 3 replies
  • 2952 views
  • 0 likes
  • 2 in conversation