statsforecast
statsforecast copied to clipboard
Can statsforecast detect season_length automatically?
Description
It seems all models need season_length params. But it's very common that users have no idea about it.
Use case
No response
@wwulfric, thanks for opening this issue.
@ngupta23 i'm very excited about what we discussed. i thought that we could add different ways to calculate season_length
, for example
AutoARIMA(season_length=SeasonalityACF())
and also, for example, based on the frequency
AutoARIMA(season_length=SeasonalityFreq(freq="D"))
and that would allow computing different season lengths based on different scenarios, as well as for hyperparameter tunning xD. currently it is very limited because it only accepts integers hahaha
@AzulGarza - Yes, we could add various methods that inherit from a SeasonalDetectionBase
class.
For reference, in pycaret, I added a lot of setting combinations. Details can be found here.
Some practical considerations for the ACF based approach:
- ACF-based methods can sometimes lead to a large
season_length
value which will make AutoARIMA slow (even the statsforecast version). There should be a way to limit the maxseason_length
to consider when using the ACF based detection. - Order of frequency detection can sometimes be important. In some use cases (e.g. supply chain), if the detected season lengths are 2, 3, 4, 12, users may want to remove the harmonics and consider a
season_length
of 12. In other cases, they may want to use the high-frequency variant instead (2). These options and flexibility should be provided to the user.