I am using SAS TSFS (Time Series Forecasting) module.
I have an hourly time series which has multiple seasonalities. i.e. there is an hourly, daily, weekly and monthly seasonlaities in the series.
Can you let me know how to handle all the seasonalities in a single model.
Hello -
You may want to check out: https://communities.sas.com/t5/SAS-Forecasting-and-Econometrics/forecasting-Procedure-for-multiple-s...
Unfortunately PROC UCM (or SSM) is not available in TSFS, so you will have to switch to code.
You may find this paper of interest too: https://forecasters.org/submissions08/MorzuchBernardISF2008.pdf
Thanks,
Udo
Hello -
You may want to check out: https://communities.sas.com/t5/SAS-Forecasting-and-Econometrics/forecasting-Procedure-for-multiple-s...
Unfortunately PROC UCM (or SSM) is not available in TSFS, so you will have to switch to code.
You may find this paper of interest too: https://forecasters.org/submissions08/MorzuchBernardISF2008.pdf
Thanks,
Udo
Another way to approach modeling time series with multiple seasonalities is to use the highest frequency seasonality (hour in your example) as the base seasonality and model the rest of the seasonalities using dummy variables or Trig variables (sin + cosin waves). You cas utilize ARIMAX to fit such models. You might want to consider using the automatic variable selection feature in TSFS to help selecting significant seasonalities.
alex
I have data that was collected at a daily interval. The data has a 7-day weekly periodicity and then annual seasonality which is really a 365.25 day period. To handle complex, multiple seasonality you can follow the method described by De Livera, Hyndman, and Snyder in this paper: http://robjhyndman.com/papers/ComplexSeasonality.pdf. The seasonal components are reduced to their Fourier components, and I would describe the update procedure as looking like a "rolling Fourier transform."
Using the Fourier representation of annual seasonality is an effective way to reduce the number of parameters that you have to maintain. So instead of keeping 365 values for a 365 day cycle, you reduce it to say 10 Fourier frequencies which require 20 parameters (2 times the number of frequencies).
When I divide all of the values in my time series by the long term mean value (there is no trend, but one could de-trend the data if there was), the data varies from 0.5 to 1.5. After removing the day-of-week component, the data varies over a much smaller range 0.85 to 1.15. After removing the second level of seasonality (annual), the level varies between 0.96 and 1.04. That says that about 70% of the variability of the data was determined by day-of-week seasonality, another 22% of the variability was due to day-of-year seasonality. Leaving only 8% noise!
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 16. Read more here about why you should contribute and what is in it for you!
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.