Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Home
- /
- Analytics
- /
- Forecasting
- /
- Re: Multiplicative seasonality in PROC UCM

Options

- RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

🔒 This topic is **solved** and **locked**.
Need further help from the community? Please
sign in and ask a **new** question.

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Posted 05-22-2018 04:57 PM
(1605 views)

We are forecasting some series where after a level shift down multiplicative seasonality is revealed. PROC UCM's additive seasonality results in negative forecasts as the variance of the low seasonal points is too high. I would like to determine if we can hack multiplicative seasonality in some way.

My understanding is that if our model was log(Y) = log(Season) + ... this would accomplish multiplicative seasonality. We can leave level, trend, and predictors as additive. Logging Y is easy! If I am right so far, then the real issue is how to do the equivalent of logging seasonality. There is no option to do so. Is there something that would be, perhaps not equivalent, but close enough, in the form of an adjustment post-forecast that could be applied algorithmically using the season values in the OUTFOR= data set?

- Tags:
- forecasting
- PROC UCM

1 ACCEPTED SOLUTION

Accepted Solutions

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Modelling log(Y) instead of Y does provide a way to get multiplicative seasonality:

log(Y) = level + regression-effects + season + error

translates into:

Y = exp(level) * exp(regression effects) * exp(season) * exp(error)

When you use log(Y) as the response series in PROC UCM, the OUTFOR data set contains the forecasts and estimates of different components (level, season, error, etc). You will need to manually (DATA step) back-transform them to get their multiplicative versions (see "Example 7.2 Seasonal Model for the Airline Series" in the PROC ARIMA doc to see this type of back-transforming of the log transformation).

Is this what you want?

5 REPLIES 5

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Modelling log(Y) instead of Y does provide a way to get multiplicative seasonality:

log(Y) = level + regression-effects + season + error

translates into:

Y = exp(level) * exp(regression effects) * exp(season) * exp(error)

When you use log(Y) as the response series in PROC UCM, the OUTFOR data set contains the forecasts and estimates of different components (level, season, error, etc). You will need to manually (DATA step) back-transform them to get their multiplicative versions (see "Example 7.2 Seasonal Model for the Airline Series" in the PROC ARIMA doc to see this type of back-transforming of the log transformation).

Is this what you want?

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Yes-- in fact, we have subsequently figured that out. At the moment I am working on the transformation back of variables that are in the OUTFOR and ods forecasts tables. We are transforming back with the EXP() function.

By doing this, we now have ETS(M,M or N,M or N) models, correct? We're thinking through the implications of multiplicative errors and trend as we consider which models on which to apply the log transformation. We would want to be careful with any positive, exponential trends. We may build multiplicative damping on as a post-hoc adjustment if we end up with models that require mult season and a trend, but where the exponential trend is too steep.

Are those reasonable steps/assumptions?

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

I do not want to venture into ETS modeling framework popularized by Hyndman and others because even though it is similar to the decompositions provided by PROC UCM, there are many important differences (e.g., they deal with multiplicative and other nonlinear models by specific techniques). Currently, SAS/ETS (the software and not the modeling methodology) offers a few of the ETS models via PROC ESM. However, PROC ESM does not support regressors in the model.

Now questions whether exponential trends are too steep and such depend on particular application and as with any data analysis project some trial and error is needed.

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

**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.

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.