EconStatsCraft › STL forecasting

STL forecasting

The workhorse for strongly seasonal data. STL pulls out a seasonal shape that is allowed to drift and is robust to outliers, the remainder is forecast, and the season is added back - everything a fixed seasonal ARIMA term cannot do.

What it needs

The intuition

Seasonality is often the largest and most predictable part of a series, and also the part that gets in the way of modelling everything else. STL forecasting takes the sensible route: strip the seasonality out with a robust decomposition, forecast the seasonally adjusted remainder with whatever method suits it, then add the seasonal pattern back. Each step does one job.

When to use it

With strongly seasonal data, especially when the seasonal pattern changes slowly or the series contains outliers that would distort a fixed seasonal term.

Where the estimator comes from

STL - seasonal and trend decomposition using loess - iterates two smoothers. An inner loop alternates between estimating the seasonal component by loess on the cycle-subseries (all the Januaries together, all the Februaries, and so on) and estimating the trend by loess on the deseasonalised series. An outer loop computes robustness weights from the remainder, w_t=B\!\left(|r_t|/(6\,\mathrm{median}|r|)\right) with B the bisquare, and repeats - so a handful of outliers get near-zero weight and stop distorting the seasonal shape. The forecast is \hat{y}_{T+h}=\hat{S}_{T+h}+\hat{A}_{T+h}, where the seasonal part is taken as the last estimated cycle repeated and the adjusted part comes from ARIMA or ETS.

The model

y_t=S_t+T_t+R_t,\qquad \hat y_{n+h}=\hat S_{n+h}+\widehat{(T+R)}_{n+h}

What it assumes

Statistical properties

How to read the output

A worked reading

On a monthly series with a drifting seasonal pattern, seasonal dummies force one fixed set of twelve coefficients while STL lets the July effect grow across the sample. The forecast difference is small at one step and substantial at twelve, because a fixed seasonal that was fitted to the average of the whole history is wrong at both ends by construction. The trade-off is honest and visible: STL follows recent seasonality more closely and will follow a spurious recent change just as faithfully.

Symptom → diagnosis → what to do

If you see thisIt meansDo this
Seasonal shape changing sharply year to yearSeasonal window too shortLengthen it, or use periodic seasonality
Remainder showing seasonal structureUnder-smoothed seasonal extractionThe decomposition has not finished the job
Outliers bending the seasonal figureRobust weights not usedTurn robustness on
Seasonality growing with the levelAdditive model on multiplicative dataTake logs first
Fewer than two full cyclesSTL cannot identify the componentsUse seasonal dummies instead
Intervals too narrowSeasonal uncertainty excluded by constructionKnown limitation; widen if it matters

Common mistakes

Where to read this properly

See also

Decomposition, which is the same STL without the forecasting step. Exponential smoothing and ARIMA, the usual choices for the adjusted series.

Related Time series - one series

Time-varying coefficients (Kalman) · Unit root tests · Correlogram (ACF / PACF) · ARIMA / SARIMA · Rolling-origin cross-validation · Theta method · Unobserved components · Forecast combination · Markov regime switching · Change frequency (resample) · ARCH / GARCH volatility · Decompose & filter · Spectral analysis · Exponential smoothing · Forecast accuracy

All analyses

Charts

Line chart · Area chart · Bar chart · Stacked bar · Scatter plot · Bubble chart · Histogram · Box plot · Pie chart · Heat map · Rebased to 100 · Lorenz curve and Gini

Maps

World map · Bivariate map · Flow map · India - state map · India - district map

Explore

Descriptive statistics · Summary by group · Two-way table · Classical statistical tests

Regression

Multiple regression (OLS) · Logit / Probit · Tobit (censored) · Truncated regression · Multinomial logit · Ordered logit / probit · Quantile regression · Poisson / Negative binomial

Time series - one series

Time-varying coefficients (Kalman) · Unit root tests · Correlogram (ACF / PACF) · ARIMA / SARIMA · Rolling-origin cross-validation · Theta method · Unobserved components · STL forecasting · Forecast combination · Markov regime switching · Change frequency (resample) · ARCH / GARCH volatility · Decompose & filter · Spectral analysis · Exponential smoothing · Forecast accuracy

Time series - several series

Yield curve (Nelson–Siegel / Svensson) · Dynamic factor model · Dynamic regression (ARIMAX) · Structural VAR · VAR · Granger causality · Cointegration · VECM · ARDL & bounds test

Panel data

Panel regression · Panel cointegration tests · Heterogeneous panel: Mean Group & PMG · Gravity model of trade · Dynamic panel GMM · Panel diagnostics · Panel unit-root tests

Multivariate statistics

Principal components (PCA) · Factor analysis · Cluster analysis

Marketing research

Conjoint analysis · MaxDiff (best–worst scaling) · TURF - reach of a product line · Price sensitivity (Van Westendorp) · Market basket analysis · Perceptual map · Scale reliability (Cronbach’s alpha) · Key driver analysis

Causal

Spatial autocorrelation · Spatial regression · Heckman selection · Instrumental variables (2SLS) · Difference-in-differences · Staggered difference-in-differences · Regression discontinuity · Matching & weighting · Oaxaca–Blinder decomposition

Finance & risk

Black–Scholes option pricing · Bond price, duration & convexity · Merton distance to default · EMI / home loan planner · CAPM / beta estimation · Multi-factor model · Portfolio optimization · Value at Risk & Expected Shortfall · Performance & drawdown · Time value of money & NPV/IRR · Equity valuation (DDM, FCF, residual income) · Cost of capital (WACC) · Binomial option pricing · Option strategies (payoff & profit) · Forwards, futures & swaps · Credit risk & Basel capital · Extreme value theory (tail risk)

Actuarial

Life table · Life annuity · Life insurance pricing · Chain ladder reserving · Buhlmann credibility · Survival analysis · Mortality graduation · Aggregate loss model · Ruin probability · Multi-state Markov model · Loss severity fitting

Tests & breaks

Monte Carlo experiment · F-test, Wald & Chow · Structural breaks & stability

Machine learning

Regression vs machine learning · Ridge / Lasso / Elastic Net · Random forest · Gradient boosting

Open the workspace →

Starting engine…

EconStatsCraft rigorous, plain-spoken econometrics

Econometrics that explains itself.

Regression, panel data, time series and the whole battery of tests. Every result is followed by a verdict you can defend.

Load a dataset to see it here.