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

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

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
  • 2818 views
  • 0 likes
  • 2 in conversation