Skip to main content

Multi-Seasonal Models

Models designed for complex seasonality patterns (e.g., hourly data with daily + weekly cycles).

ModelDescription
TBATSTrigonometric seasonality, Box-Cox, ARMA errors
AutoTBATSAutomatic TBATS with parameter selection
MSTLMultiple Seasonal-Trend decomposition using Loess
AutoMSTLAutomatic MSTL with period detection
MFLESMedian-based Feature-Logic Expert System
AutoMFLESAutomatic MFLES configuration
Showing 6 of 6

TBATS

Trigonometric seasonality, Box-Cox transformation, ARMA errors, Trend, and Seasonal components.

Parameters

ParameterTypeRequiredDescription
seasonal_periodsINTEGER[]YesMultiple seasonal periods (e.g., [24, 168] for hourly data)

Example

-- Hourly data with daily (24) and weekly (168) seasonality
SELECT * FROM anofox_fcst_ts_forecast(
'hourly_energy',
'timestamp',
'consumption',
'TBATS',
336,
MAP{'seasonal_periods': '[24, 168]'}
);

Best for: Multiple seasonal patterns, high-frequency data.


AutoTBATS

Automatic TBATS with parameter selection.

Parameters

ParameterTypeDefaultDescription
seasonal_periodsINTEGER[]autoMultiple seasonal periods

Example

SELECT * FROM anofox_fcst_ts_forecast(
'complex_data',
'timestamp',
'value',
'AutoTBATS',
336,
MAP{}
);

Best for: Multiple seasonality with automatic configuration.


MSTL

Multiple Seasonal-Trend decomposition using Loess. Decomposes series into trend + multiple seasonal components + remainder.

Parameters

ParameterTypeRequiredDescription
seasonal_periodsINTEGER[]YesMultiple seasonal periods

Example

-- Daily data with weekly (7) and yearly (365) seasonality
SELECT * FROM anofox_fcst_ts_forecast(
'daily_sales',
'date',
'sales',
'MSTL',
90,
MAP{'seasonal_periods': '[7, 365]'}
);

Best for: Very complex seasonality, decomposition-based forecasting.


AutoMSTL

Automatic MSTL with period detection.

Parameters

ParameterTypeDefaultDescription
seasonal_periodsINTEGER[]autoMultiple seasonal periods

Example

SELECT * FROM anofox_fcst_ts_forecast(
'hourly_data',
'timestamp',
'value',
'AutoMSTL',
168,
MAP{}
);

Best for: Complex seasonality with automatic period detection.


MFLES

Median-based Feature-Logic Expert System. Robust to outliers and noise.

Parameters

ParameterTypeDefaultDescription
seasonal_periodINTEGERautoPrimary seasonal period

Example

SELECT * FROM anofox_fcst_ts_forecast(
'noisy_retail',
'date',
'sales',
'MFLES',
28,
MAP{'seasonal_period': '7'}
);

Best for: Noisy data, outliers, real-world messy time series.


AutoMFLES

Automatic MFLES configuration.

Parameters

ParameterTypeDefaultDescription
seasonal_periodINTEGERautoSeasonal period

Example

SELECT * FROM anofox_fcst_ts_forecast(
'noisy_data',
'date',
'value',
'AutoMFLES',
28,
MAP{}
);

Best for: Noisy data with automatic robust forecasting.


Comparison

ModelOutlier RobustSpeedSeasonality Handling
TBATSNoSlowTrigonometric
AutoTBATSNoSlowAuto trigonometric
MSTLModerateSlowLoess decomposition
AutoMSTLModerateSlowAuto decomposition
MFLESYesMediumMedian-based
AutoMFLESYesMediumAuto median-based

When to Use Multi-Seasonal Models

Data PatternRecommended Model
Hourly + daily + weeklyAutoTBATS or AutoMSTL
Daily + weekly + yearlyAutoMSTL
Noisy with multiple patternsAutoMFLES
High-frequency (sub-hourly)AutoTBATS
Need decomposition outputMSTL

Common Seasonal Periods

FrequencyCommon Periods
Hourly24 (daily), 168 (weekly), 8760 (yearly)
Daily7 (weekly), 30/31 (monthly), 365 (yearly)
Weekly52 (yearly)
Monthly12 (yearly)
🍪 Cookie Settings