Multi-Seasonal Models
Models designed for complex seasonality patterns (e.g., hourly data with daily + weekly cycles).
| Model | Description |
|---|---|
TBATS | Trigonometric seasonality, Box-Cox, ARMA errors |
AutoTBATS | Automatic TBATS with parameter selection |
MSTL | Multiple Seasonal-Trend decomposition using Loess |
AutoMSTL | Automatic MSTL with period detection |
MFLES | Median-based Feature-Logic Expert System |
AutoMFLES | Automatic MFLES configuration |
TBATS
Trigonometric seasonality, Box-Cox transformation, ARMA errors, Trend, and Seasonal components.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
seasonal_periods | INTEGER[] | Yes | Multiple 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
| Parameter | Type | Default | Description |
|---|---|---|---|
seasonal_periods | INTEGER[] | auto | Multiple 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
| Parameter | Type | Required | Description |
|---|---|---|---|
seasonal_periods | INTEGER[] | Yes | Multiple 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
| Parameter | Type | Default | Description |
|---|---|---|---|
seasonal_periods | INTEGER[] | auto | Multiple 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
| Parameter | Type | Default | Description |
|---|---|---|---|
seasonal_period | INTEGER | auto | Primary 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
| Parameter | Type | Default | Description |
|---|---|---|---|
seasonal_period | INTEGER | auto | Seasonal period |
Example
SELECT * FROM anofox_fcst_ts_forecast(
'noisy_data',
'date',
'value',
'AutoMFLES',
28,
MAP{}
);
Best for: Noisy data with automatic robust forecasting.
Comparison
| Model | Outlier Robust | Speed | Seasonality Handling |
|---|---|---|---|
| TBATS | No | Slow | Trigonometric |
| AutoTBATS | No | Slow | Auto trigonometric |
| MSTL | Moderate | Slow | Loess decomposition |
| AutoMSTL | Moderate | Slow | Auto decomposition |
| MFLES | Yes | Medium | Median-based |
| AutoMFLES | Yes | Medium | Auto median-based |
When to Use Multi-Seasonal Models
| Data Pattern | Recommended Model |
|---|---|
| Hourly + daily + weekly | AutoTBATS or AutoMSTL |
| Daily + weekly + yearly | AutoMSTL |
| Noisy with multiple patterns | AutoMFLES |
| High-frequency (sub-hourly) | AutoTBATS |
| Need decomposition output | MSTL |
Common Seasonal Periods
| Frequency | Common Periods |
|---|---|
| Hourly | 24 (daily), 168 (weekly), 8760 (yearly) |
| Daily | 7 (weekly), 30/31 (monthly), 365 (yearly) |
| Weekly | 52 (yearly) |
| Monthly | 12 (yearly) |