Back to research
Time Series 17 min read

Everything in finance arrives in temporal order.

Price ticks, order flow, macro releases, earnings — every signal a quant system consumes is a time series, not an i.i.d. sample. This essay covers the statistical machinery for modeling that order — stationarity, ARIMA, GARCH, cointegration, state-space models — and where it connects to causal identification and financial ML.

Most of machine learning assumes independent, identically distributed data. Almost none of finance is that.

Every observation in a financial time series carries the memory of the observations before it — today's volatility is correlated with yesterday's, this quarter's spread is cointegrated with a dozen others, and a shock in one regime propagates differently than the same shock in another. Treat this data as i.i.d. and every downstream estimate — a variance, a p-value, a Sharpe ratio — is quietly wrong. Time series analysis is the discipline of modeling that dependence explicitly instead of assuming it away.

This picks up where causal inference leaves off. That essay asks what identifies a cause from a snapshot of treated and untreated units; here, the “unit” is a single sequence observed over time, and identification has to survive the fact that every observation is correlated with its own past.

Why time series is not just another feature set

Standard supervised learning assumes exchangeability: shuffle the rows and the model doesn't care. Shuffle a price series and you destroy the entire object of study. Autocorrelation, heteroskedasticity, and non-stationarity are not nuisances to be engineered away — they are the signal, and mismodeling them is the single most common way quant research produces results that don't survive contact with live data.

Stationarity: the central assumption

A process is weakly (covariance) stationary if its first two moments don't depend on time: , , and for every . Almost every classical time-series tool — ARIMA, GARCH, cointegration tests — either assumes stationarity outright or is built to transform a series into one.

Unit roots and the ADF test

A series with a unit root — where shocks have a permanent effect rather than decaying — is the canonical non-stationary case. The Augmented Dickey-Fuller test regresses the differenced series on its own lag:

The null hypothesis is — a unit root, hence non-stationarity. Most raw price series fail to reject this null; most return series do not. That single fact is why quant models are built on returns, not prices.

The Box-Jenkins framework: ARIMA

ARIMA(p, d, q) decomposes a series into an autoregressive component, an integration (differencing) order, and a moving-average component:

The d in ARIMA is the number of times the raw series must be differenced to achieve stationarity — usually for prices. The Wold decomposition theorem underwrites the whole framework: any covariance-stationary process can be represented as an infinite-order moving average of white noise, which is why a finite ARMA model is a reasonable approximation for so many real series.

Volatility clustering and the GARCH family

Returns are close to uncorrelated, but their magnitudes are not — large moves cluster together. This and a handful of other regularities are stable enough across markets and decades to be called stylized facts:

  • Volatility clustering. Large changes tend to be followed by large changes, of either sign.
  • Fat tails. Return distributions have excess kurtosis relative to the Gaussian, even after standardizing for volatility.
  • Leverage effect. Volatility rises more after negative returns than after positive ones of the same size.
  • Aggregational Gaussianity. As the return horizon increases, the distribution approaches normality — the non-normality lives at high frequency.

The GARCH(1,1) model captures the first fact directly by letting variance depend on its own recent history:

Extensions target the rest: EGARCH and GJR-GARCH add asymmetry to capture the leverage effect; Student-t or skewed-t innovations replace the Gaussian to capture fat tails directly rather than through the variance process alone.

Cointegration: when non-stationary series still relate

Spurious regression is the disease; cointegration is the legitimate exception. Two (or more) I(1) — individually non-stationary — series are cointegrated if some linear combination of them is stationary. Economically, this means the series share a long-run equilibrium relationship even though each wanders on its own in the short run.

Engle-Granger and Johansen

The Engle-Granger two-step method regresses one series on the other, then tests the residual for stationarity — if it's stationary, the original pair is cointegrated and the residual is the mean-reverting spread. It handles only pairs and imposes an asymmetric regression. The Johansen test generalizes this to n series simultaneously via a vector error-correction model (VECM), recovering the full rank and number of cointegrating relationships in a system.

State-space models and the Kalman filter

Many financial quantities are not directly observed — the “true” hedge ratio between two assets, the latent trend in a noisy price series, the term structure's hidden factors. State-space models separate an unobserved state equation from an observed measurement equation:

The Kalman filter is the recursive, provably optimal (under Gaussian noise) estimator of the hidden state given all observations up to the current time — updating a hedge ratio, for example, tick by tick rather than re-estimating it from scratch on a rolling window. It is, in effect, Bayesian updating specialized to linear-Gaussian dynamics.

Regime switching and structural breaks

Stationarity itself is often a local, not global, property. Markets alternate between calm and crisis regimes with different means, variances, and correlation structures. Hamilton's (1989) Markov-switching model lets the parameters of an AR process depend on an unobserved discrete state that itself follows a Markov chain — letting the model represent “this is a different world now” rather than forcing one set of coefficients to explain every regime badly.

Detecting when a break occurred — rather than assuming a fixed number of latent regimes — is the job of structural-break tests like Chow's test (known breakpoint) and CUSUM (unknown breakpoint, tested via the cumulative sum of recursive residuals).

Where time series meets causal inference

Everything above describes association and dynamics within a series. Establishing that one series drives another is a separate, harder claim — the subject of the causal inference essay. Granger causality is the classical bridge: Granger-causes if past values of improve forecasts of beyond what 's own history provides — a predictive, not ontological, notion of cause that is native to the ARIMA/VAR framework above.

The modern extension of this idea is causal discovery for high-dimensional time series — algorithms like PCMCI (Runge et al.) that recover causal graphs from autocorrelated, contemporaneously-linked series at scale, rather than testing one pair at a time. It is the natural endpoint of the two disciplines converging, and the direction this research is oriented toward.

Deep learning for sequential data

LSTMs, temporal convolutional networks, and attention-based architectures (Temporal Fusion Transformer, N-BEATS, PatchTST) can, in principle, learn nonlinear temporal dependencies that ARIMA and GARCH cannot express. In practice, financial time series have a low signal-to-noise ratio and non-stationary data-generating processes, so the flexibility that helps these models on stable, high-data-volume domains often just gives them more surface area to overfit a backtest. Deploying them responsibly is a discipline of its own — the subject of the financial ML essay: purged cross-validation, fractional differentiation to preserve memory while achieving stationarity, and meta-labeling to separate a model's directional call from its confidence.

Common pitfalls

  • Look-ahead bias. Using information — even a rolling statistic computed “up to today” with an off-by-one error — that would not have been available at decision time.
  • Spurious regression on I(1) series. Regressing levels instead of returns, or failing to test for cointegration before trading a spread.
  • Random K-fold cross-validation. Standard CV leaks future information into training through autocorrelation; time series requires walk-forward or purged, embargoed splits.
  • Over-differencing. Differencing a series more than necessary to achieve stationarity destroys long-memory signal along with the trend.
  • Regime blindness. Fitting one global model across a sample that spans multiple volatility or correlation regimes, then being surprised when it fails in the next one.

The path forward

A disciplined time-series workflow, in order:

  1. Test for stationarity (ADF, KPSS) before fitting anything; transform (difference, log-return) until it holds.
  2. Model the conditional mean (ARIMA/VAR) and the conditional variance (GARCH family) separately — they capture different stylized facts.
  3. Test candidate pairs or baskets for cointegration before treating a spread as mean-reverting.
  4. Validate with walk-forward, purged cross-validation — never random K-fold — and check performance separately across detected regimes.

None of this guarantees a working strategy. It guarantees that when a strategy fails, it fails for a reason you can diagnose — not because the validation procedure was leaking information the whole time. In time series, the useful models are the ones honest about what they assume away.

All models are wrong, but some are useful.
George E. P. Box
#time-series#stationarity#arima#garch#cointegration#kalman-filter#regime-switching#granger-causality

Related research topics

All topics

Research is the engine. Shipping is the test.

If time series, causal inference, or financial ML map to something you want built, I'd like to hear about it.

Start a conversation