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

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?

1 ACCEPTED SOLUTION

Accepted Solutions
rselukar
SAS Employee

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?

View solution in original post

5 REPLIES 5
rselukar
SAS Employee

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?

cau83
Pyrite | Level 9

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?

rselukar
SAS Employee

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.

cau83
Pyrite | Level 9

Fair enough. We use PROC ESM as well but prefer UCM because we do have regressors. We believe we can functionally achieve 12 of the 30 models in the Hyndman framework by selectively using log(Y) and/or doing trend-dampening adjustments, and that's plenty. We just want to make sure that we understand the potential drawbacks of these transformations.

rselukar
SAS Employee

As far as I can see, what you are doing is routinely done in forecasting projects and after taking care to not forecast too far into the future things should be fine.  My two cents!

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

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
  • 5 replies
  • 1688 views
  • 1 like
  • 2 in conversation