I am working on a research problem related to time series analysis. Now, I have STL decomposition and FB Prophet to decompose my data into trend, seasonality and residual. I struggle with measuring the strength of my seasonality component. In the book Forecasting: Principles and Practice, there is a formula which is the ratio of var(residual) to var(residual + seasonality) (takes 0 if negative). Yet, it's very difficult to build an intuition behind it, on repeated trials it shows that daily seasonality is pretty much zero (though my algorithms suggest that there is one.) I would appreciate any hints and suggestions as to measuring the strength of seasonality. Thank you!
$\begingroup$ Perhaps this related question is relevant. You may also search for other seasonality related questions. $\endgroup$– Ertxiem - reinstate MonicaOct 24, 2019 at 13:27
$\begingroup$ thank you! though the question is about how to measure the strength of seasonality. $\endgroup$– Dina KunetsOct 24, 2019 at 14:54
on repeated trials it shows that daily seasonality is pretty much zero (though my algorithms suggest that there is one.)
I am not sure about Prophet, but STL will fit a seasonal component whether or not one is present. This may account for your observation.
I personally would fit seasonal and non-seasonal models to your data and assess forecast accuracy on a holdout sample for both models. Then you can quantify by how much including seasonality reduces your MSE. (And whether it does so at all.)
Are you dealing with simple or complex seasonality in your data? For example, monthly data may show monthly seasonality whereas hourly data may show daily and weekly seasonality.
I think your decomposition would need to reflect whether the seasonality in your data is simple or complex. Simple seasonality would produce a single seasonal component when decomposing the time series into its component parts, whereas multiple seasonality would produce multiple seasonal components. For an example of the latter, see https://otexts.com/fpp2/complexseasonality.html.
One way to retrieve the long term trend and seasonal component(s) in your time series would be using a GAM model. For this type of model, you can report an adjusted R squared and keep track of improvements in adjusted R squared associated with introducing additional systematic components to the model.
1$\begingroup$ thank you for your response! I am dealing with complex seasonality and am using a gam model. in the book that you've referenced, there is a formula called seasonality strength (otexts.com/fpp2/seasonal-strength.html), do you happen to know if there are alternative ways to measure this 'strength'? thank you! $\endgroup$ Oct 24, 2019 at 16:17
1$\begingroup$ That's what I thought - you would have to worry about complex seasonality. Rob Hyndman shows some detailed R code for cases where simple seasonality would be at play here: robjhyndman.com/hyndsight/tscharacteristics. But the code won't work for complex seasonality. Maybe you could reach out to Rob and ask him if he has worked on extending that approach to complex seasonality? I am not familiar with this area so I can't really help. $\endgroup$ Oct 25, 2019 at 23:12