Time Series Analysis and Forecasting
Time series analysis and forecasting is the practice of studying data recorded in time order, such as sales per day or requests per second, to describe its structure and estimate its future values. It splits a series into trend, repeating seasonal cycles, and unexplained variation, then fits a model that projects the next values with a range of uncertainty around them. It matters since methods that assume independent, shuffleable rows mislead when each observation depends on the ones before it.
itData engineering and analytics | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — Time Series Analysis and Forecasting
Here is the honest version. A time series is data with the clock left in: units sold each day, requests each second, revenue each month. Analysis is the job of naming the structure hiding in that order. Forecasting turns the structure into a guess about where the series heads next, bundled with a frank admission of how far off the guess could be.
Why it needs its own field: most statistics assumes you can shuffle the rows without losing anything, and here you cannot. Tuesday resembles last Tuesday. This minute resembles the minute before. The older move was to eyeball the last few points and extend the line, which is fine until a curve shows up. Almost every technique that follows is a way of not cheating against the clock.
Three ideas carry the weight. The first is decomposition: split the series into a slow-moving trend, a repeating component tied to the calendar, and whatever noise is left once those are subtracted. The second is stationarity: several classic models want a series whose behavior is the same in every window, and the usual way to get one is differencing, which swaps each value for the amount it changed. The third is the humble benchmark. Repeat the reading from exactly one season back and you have a seasonal naive forecast; it is irritatingly accurate on real data, and a fancier model that fails to beat it has bought you nothing.
The counterintuitive bit: bigger models are not a free upgrade. Two large open contests, known as M4 and M5, found that off-the-shelf machine learning trailed classical methods such as exponential smoothing and ARIMA when the task was a broad set of separate series, and only took the lead once there were thousands of related series to learn from together. So "which model" really means "how many series, and do they rhyme with each other".
One more thing the jargon hides: a single predicted number, on its own, is nearly useless for planning. What a planner can act on is the prediction interval, the band the true value should sit inside with some stated probability. That band grows wider the further out you look, because the unknowns pile up, and it leans on assumptions about the leftover noise. Break those assumptions and the band shrinks below where it should be, and the forecast starts sounding surer than it has any right to.
Where to go from here. Slides and Intro walk through the model families and how they connect. The Cheatsheet is the reference card: the ETS letter codes, the ARIMA parameters, the error-metric formulas, and a table of warning signs for a model that has quietly gone off. Practice Reference and Exercise turn all of it into a Python routine, from a first decomposition plot to a rolling backtest scored against that stubborn seasonal naive. Field Notes is where the bruises are recorded: why the benchmark is the actual deliverable, why digging up what the data looked like at the time beats arguing about models, and why a clean-looking Prophet chart has not earned your trust until you have tested it.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://otexts.com/fpp3/
Supports
- Overall scope of time series analysis and forecasting
- Chapter structure covering decomposition, the forecaster's toolbox, exponential smoothing, and ARIMA
- https://otexts.com/fpp3/decomposition.html
Supports
- Trend, seasonal, cycle, and remainder components
- Additive versus multiplicative decomposition and the log transform
- STL decomposition handling any seasonal period, drifting seasonality, and outliers
- https://otexts.com/fpp3/stationarity.html
Supports
- Definition of a stationary series
- First differencing and seasonal differencing
- KPSS unit-root test and choosing the differencing order
- Quiz questions on stationarity and differencing
- https://otexts.com/fpp3/simple-methods.html
Supports
- Mean, naive, seasonal naive, and drift benchmark methods
- Seasonal naive as the benchmark other models must beat
- Quiz question on the seasonal naive method
- https://otexts.com/fpp3/expsmooth.html
Supports
- Exponential smoothing forecasts as exponentially weighted averages of past observations
- History of exponential smoothing (Brown 1959, Holt 1957, Winters 1960)
- Timeline event on Holt and Winters
- https://otexts.com/fpp3/taxonomy.html
Supports
- ETS taxonomy of Error, Trend, and Seasonal components
- Mapping of ETS(A,N,N), ETS(A,A,N), ETS(A,A,A) to simple exponential smoothing, Holt's linear, and additive Holt-Winters
- Timeline event on the state space framework
- Quiz question on ETS(A,A,A)
- https://otexts.com/fpp3/arima.html
Supports
- ARIMA and exponential smoothing as complementary approaches, one targeting autocorrelation and the other trend and seasonality
- Box and Jenkins methodology
- Timeline event on the ARIMA methodology
- https://otexts.com/fpp3/non-seasonal-arima.html
Supports
- Definition of ARIMA(p,d,q) and the meaning of p, d, and q
- ACF and PACF guidance for choosing AR and MA orders
- Quiz question on the meaning of q
- https://otexts.com/fpp3/accuracy.html
Supports
- Training/test split with the test set typically about 20 percent of the sample
- Forecast error definition and the distinction from residuals
- MAE, RMSE, MAPE, MASE, and RMSSE definitions and the naive/seasonal-naive scaling
- Quiz questions on random splits and on interpreting MASE
- https://otexts.com/fpp3/tscv.html
Supports
- Time series cross-validation as evaluation on a rolling forecast origin
- Difference from a fixed train/test split and adaptation for multi-step forecasts
- https://otexts.com/fpp3/diagnostics.html
Supports
- Residuals should be uncorrelated with zero mean
- Ljung-Box portmanteau test for residual autocorrelation
- https://otexts.com/fpp3/prediction-intervals.html
Supports
- Definition of a prediction interval and its stated probability
- Intervals widening with the forecast horizon
- Interval calculations assuming uncorrelated and often normal residuals
- Quiz question on interval coverage falling below the nominal level
- https://www.statsmodels.org/stable/tsa.html
Supports
- AR, ARIMA, SARIMAX, and ETS/Holt-Winters model classes
- STL and seasonal_decompose
- ADF and KPSS stationarity tests, acf and pacf functions
- Practice-reference code for decomposition, stationarity testing, and fitting
- https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0194889
Supports
- Statistical methods dominated machine-learning methods across accuracy measures and horizons on the M3 monthly data
- Naive 2 more accurate than half the machine-learning methods
- Model fit is not a good predictor of post-sample forecasting accuracy
- Machine-learning methods carry much higher computational cost
- Field Notes card on machine learning not being the default upgrade
- https://www.sciencedirect.com/science/article/abs/pii/S0169207018300785
Supports
- Combinations of mostly statistical methods took most of the top 17 places
- Pure machine-learning entries underperformed the combination benchmark
- A hybrid of exponential smoothing and a recurrent network won
- Timeline event on the M4 competition
- Field Notes cards on machine learning and on the M4-to-M5 shift
- https://www.sciencedirect.com/science/article/pii/S0169207021001874
Supports
- All top-performing methods were pure machine-learning models and beat the statistical benchmarks
- Cross-learning global models outperformed local per-series models
- Calibrated prediction intervals are harder to produce than accurate point forecasts
- Timeline event on the M5 competition
- Field Notes cards on interval coverage and on the M4-to-M5 shift
- https://www.jstatsoft.org/v27/i03
Supports
- Automatic ARIMA (stepwise) and automatic exponential smoothing (ETS) order selection in the R forecast package
- Timeline event on automatic order selection
- https://robjhyndman.com/publications/forecasting-competitions/
Supports
- The first M-competition (1982) and the benchmark-driven evaluation culture it established
- Timeline event on the first M-competition
- https://facebook.github.io/prophet/
Supports
- Prophet as an additive model of trend, yearly/weekly/daily seasonality, and holiday effects
- Two-column interface and automated forecasts tunable by analysts
- Timeline event and Landscape entry for Prophet
- https://peerj.com/preprints/3190/
Supports
- Prophet as a modular regression model with interpretable parameters and analyst-in-the-loop evaluation
- Timeline event on the release of Prophet
- https://medium.com/@seanjtaylor/a-personal-retrospective-on-prophet-f223c2378985
Supports
- Prophet co-creator's statement that he wishes it worked better and that it was born out of pragmatism rather than forecasting research
- Field Notes card on Prophet looking finished before it is validated
- https://m-e-gorelli.medium.com/stop-using-prophet-as-a-black-box-3-ways-it-can-go-wrong-1046f6c6ec73
Supports
- Prophet detecting weekly seasonality that does not exist and mishandling missing dates
- A trend that can be pushed toward implausible values by a late level shift while leaving signal in the residuals
- Field Notes card on Prophet
- https://arxiv.org/abs/1704.04110
Supports
- Autoregressive recurrent network trained jointly across many related series producing probabilistic forecasts
- Timeline event and Landscape entry for DeepAR / GluonTS
- https://arxiv.org/abs/1905.10437
Supports
- A deep stack of fully connected layers with a decomposition structure beating the M4 winner without statistical components
- Timeline event on N-BEATS
- https://arxiv.org/abs/2403.07815
Supports
- Tokenizing time series values and training language-model architectures for zero-shot forecasting
- Timeline event and Landscape entry for Chronos
- https://nixtlaverse.nixtla.io/statsforecast/
Supports
- AutoARIMA, AutoETS, Theta, and benchmark methods with a rolling-origin cross_validation
- Practice-reference code and Landscape entry for StatsForecast
- Timeline event on fast automatic classical models in Python
- https://alkaline-ml.com/pmdarima/
Supports
- Bringing R's auto.arima to Python as a scikit-learn-style estimator
- Landscape entry for pmdarima
- https://www.sktime.net/
Supports
- Unified interface over forecasting model families with reduction to regression
- Landscape entry for sktime
- https://www.sktime.net/en/stable/examples/01_forecasting.html
Supports
- ForecastingHorizon, reduction of forecasting to regression, forecasting pipelines, and expanding/sliding-window cross-validation splitters
- Reference-path rationale for the bridge to machine-learning approaches
- https://unit8co.github.io/darts/
Supports
- A single fit/predict API over classical, machine-learning, deep-learning, and foundation models with backtesting and conformal intervals
- Landscape entry for Darts
- https://ts.gluon.ai/
Supports
- Probabilistic deep-learning models including DeepAR trained across panels of series
- Landscape entry for GluonTS
- https://nixtlaverse.nixtla.io/neuralforecast/
Supports
- Global neural models including N-BEATS, NHITS, and the Temporal Fusion Transformer with a cross-validation interface
- Landscape entry for NeuralForecast
- https://auto.gluon.ai/stable/tutorials/timeseries/index.html
Supports
- Training and ensembling statistical, tree-based, and deep models for probabilistic forecasting
- Landscape entry for AutoGluon-TimeSeries
- https://github.com/amazon-science/chronos-forecasting
Supports
- Pretrained models that forecast an unseen series with no fitting step
- Landscape entry for Chronos
- https://robjhyndman.com/hyndsight/
Supports
- Ongoing commentary on forecast evaluation, prediction intervals, and common mistakes
- Reference-path rationale for deeper study
- https://github.com/lmmentel/awesome-time-series
Supports
- Discovery source for the ecosystem tools selected in the Awesome Links tab
- https://www.aeon-toolkit.org/
Supports
- Scikit-learn-compatible toolkit spanning forecasting, classification, clustering, anomaly detection, and segmentation
- https://linkedin.github.io/greykite/
Supports
- The Silverkite algorithm with explicit trend, changepoint, seasonality, and holiday regressors and component plots
- https://orbit-ml.readthedocs.io/en/stable/
Supports
- Bayesian structural time series forecasting with posterior sampling for prediction intervals
- https://centre-borelli.github.io/ruptures-docs/
Supports
- Offline change-point detection and segmentation of non-stationary signals
- https://stumpy.readthedocs.io/en/latest/
Supports
- Matrix profile computation for motif discovery and anomaly detection
- https://opensource.salesforce.com/Merlion/latest/index.html
Supports
- End-to-end library bundling forecasting and anomaly detection with a benchmarking and evaluation framework
- https://timeseriesai.github.io/tsai/
Supports
- Deep-learning models for time series on PyTorch and fastai
