The statistical tools used to model the specific quirks of financial data — fat tails, weak but real dependence over time, and volatility that clusters instead of staying constant. These are my working notes on the ideas behind the models, not just the formulas.
Almost everything in this course starts from returns rather than prices, because returns are (roughly) stationary — their statistical properties don't drift over time the way price levels do — which is what makes them modelable at all.
The percentage change in price plus any dividend, scaled by the starting price — the plain "how much richer am I" number.
The log-difference version. It's the preferred form in this course because multi-day returns can be found by simply summing daily log returns, rather than multiplying gross returns together.
Measures symmetry. Zero is symmetric; positive skew means a long right tail (occasional big gains); financial returns are typically negatively skewed — crashes are sharper than rallies.
Measures how fat the tails are — how often "extreme" outcomes happen relative to a normal distribution (kurtosis = 3). Financial returns almost always have excess kurtosis: extreme days are far more common than a normal curve would predict.
Positive excess kurtosis — fatter tails than normal. This is the common case for real return data.
Negative excess kurtosis — thinner tails than normal. Rare in practice.
Almost unpredictable in their mean, a surprisingly large number of extreme values (fat tails), and periods of high and low volatility that cluster together rather than being spread evenly through time.
The core idea: does today's return tell you anything about tomorrow's? These models are different ways of encoding "weak dependence" — a little bit of predictability, not the strong dependence you'd see in, say, a temperature series.
Tomorrow's return depends on today's return and nothing further back. All the model's memory is captured in a single lag.
Rewriting the AR(1) this way is the key intuition: the gap between today's return and its long-run average shrinks by a factor of every period. That's mean reversion, made explicit.
Instead of depending on the past level of returns, this depends on the past surprise (forecast error). The one-step-ahead forecast only moves because yesterday's forecast missed.
Memory of shocks extends back exactly q periods, then cuts off completely — the defining fingerprint of an MA process.
Combines both stories — a level that mean-reverts and a short memory of recent surprises. Useful when neither a pure AR nor a pure MA model fits the autocorrelation pattern well on its own.
A summary of how correlated a series is with its own past, at every lag. It's the first diagnostic plot for "does the past predict the future here."
The correlation at lag j after already controlling for lags 1 through j−1 — it isolates the direct effect of a given lag.
An autocorrelation is significantly different from zero (5% level) if it exceeds , where T is the sample size. The PACF uses the same rule of thumb.
ACF decays slowly; PACF is non-zero for the first p lags, then cuts off — the mirror image of an MA process.
ACF is non-zero for the first q lags, then cuts off; PACF decays slowly instead.
Independently and identically distributed — no relationship at all between past and future values. The baseline "nothing to model here" case.
The reversion parameter β₁ determines everything about a series' long-run behavior.
If positive, the series wanders upward on average; if negative, downward; if zero, no drift at all.
|β₁| < 1: stationary, mean-reverting series. β₁ = 1: nonstationary random walk — no fixed mean, wanders in the direction of β₀. |β₁| > 1: explosive.
Tests (random walk) against the alternative that the series is stationary. A p-value below 0.05 means you reject the random walk and conclude the series is mean-reverting.
Fitting a model well and fitting a model that will actually work on new data are two different goals. This section is about the tools for telling them apart, and what a fitted model actually implies about the future.
Plain R² only ever goes up as you add variables, even useless ones — so it can't be used to compare models with different numbers of predictors. Adjusted R² fixes that by charging a penalty for each additional coefficient k.
Both trade off fit against complexity; lower (more negative) is better for each. BIC penalizes extra parameters more harshly than AIC, so it tends to favor smaller, more parsimonious models — especially as the sample size grows.
The intuition behind the algebra: the further out you forecast, the more the current deviation from the mean fades away, since . Every long-horizon forecast from a stationary model converges to the unconditional mean.
Uncertainty grows with the forecast horizon, but it's bounded — it converges to rather than growing forever, because the series keeps getting pulled back toward its mean.
With no mean to revert to, the best forecast is just today's value plus k periods of drift. If β₀ = 0 this is the textbook statement that "your best forecast of tomorrow is today" — the random walk case.
Unlike the mean-reverting case, this grows without bound as the horizon k increases — there's no mean to anchor the forecast, so uncertainty keeps compounding.
Test enough models and one will fit your sample well purely by chance — not because it captures anything real. The more models you try, the more likely this is.
The fix for overfitting: reserve part of the data purely for evaluation, never used in estimation. A model that only worked by chance on the training data is unlikely to also work well on data it never saw.
Roughly 2/3 of the data for estimation, 1/3 held out for out-of-sample evaluation.
Regressing one random-walk series on another tends to show a "significant" relationship even when none exists — because both series wander, they'll look related by pure chance.
Returns themselves are hard to predict, but their variance is not — calm periods and turbulent periods each tend to persist. This is the volatility-clustering fact, and ARCH/GARCH models exist specifically to capture it.
Splits every return into an expected part μₜ and a surprise εₜ. Conditional volatility asks: given everything known up to yesterday, how large a surprise should we expect today?
A simple weighted average of past squared returns, geometrically discounted by λ. Easy to compute, but has no genuine mean reversion and offers no principled way to pick λ — the motivation for ARCH/GARCH.
Today's variance is a weighted sum of the last q squared returns. Big recent moves (in either direction) directly raise today's expected volatility.
The single most common volatility model. It adds a memory of yesterday's variance forecast on top of ARCH's memory of yesterday's squared return — so a whole history of shocks is compressed into one lagged term instead of many.
This form makes the three pieces intuitive: a constant (the long-run variance), α (how much weight goes on "yesterday's news"), and β (how much weight goes on "yesterday's forecast"). Their sum, α + β, measures how persistent volatility shocks are — close to 1 means shocks to volatility fade out very slowly.
Adds an extra kick (γ) that only fires after a negative return. Captures the well-documented fact that bad news raises future volatility more than equally-sized good news does.
The dollar loss you'd expect to exceed only 1% of the time, assuming normally distributed returns (2.33 is the 1% normal critical value). A t-distributed version uses a different multiplier since fat tails imply a bigger loss at the same probability.
Large shocks — of either sign — tend to be followed by more large shocks. This alone justifies modeling variance as its own time series rather than treating it as constant.
As a firm's equity value falls, its leverage (debt-to-equity) mechanically rises, making the next shock to equity value proportionally larger — one structural story behind asymmetric volatility.
News of a future volatility event can itself cause selling and price declines today, since risk-averse investors demand compensation for the coming uncertainty — meaning volatility can partly forecast itself.
(or ×12 for monthly data) — scaling relies on returns being roughly uncorrelated day to day, so variances (not standard deviations) add up over time.
Awarded to Robert Engle for ARCH — the original insight that variance itself could be modeled as autoregressive.
Once you have more than one series, a new question appears: do they move together in some stable, long-run way, or would relating them just be a coincidence?
Vector autoregression: each series is modeled as depending on its own lag and the other series' lag. It's a natural way to let two related, stationary series forecast each other.
Two individually nonstationary (random-walk) series are cointegrated if some linear combination of them, zₜ, is stationary — meaning the two series wander together and never drift permanently apart. Bid and ask prices are the classic example.
If y and x are cointegrated, you can't simply model their changes with a plain VAR — that throws away the long-run relationship. Instead, the lagged deviation from equilibrium, zₜ₋₁, is added as an extra right-hand-side variable, so short-run changes respond to how far the system has strayed from its long-run equilibrium.
The reason cointegration matters: regressing one non-stationary series directly on another risks finding a "relationship" that's just two unrelated random walks drifting past each other.
Confirm both series have a unit root, form zₜ = yₜ − γxₜ, then run a standard Dickey-Fuller test on zₜ. If zₜ is mean-reverting, the series are cointegrated.
Confirm both series have a unit root, regress y on x to estimate γ, and test the residual series for a unit root — but with the Engle–Granger test rather than a standard Dickey-Fuller, since the critical values change when γ itself is estimated.
The null is always "this is a random walk." Rejecting it means the series is mean-reverting — and when run on a cointegration residual zₜ, rejecting it is exactly what confirms cointegration.
The payoff of all this modeling: once you can estimate how individual assets move and co-move over time, you can build portfolios that account for risk that isn't constant.
The practical payoff of a factor model: instead of estimating a full covariance matrix directly (which explodes in size as you add assets), every stock's variance and every pairwise correlation is built from just its market beta and its own idiosyncratic variance ν.
The standard two-asset portfolio variance formula — except every piece (σ₁, σ₂, ρ) is now allowed to change over time, so portfolio risk itself becomes a time series you can forecast.
Weights update through time as the estimated covariance matrix Ω changes — the mean-variance optimization machinery, made dynamic.
A three-step recipe: estimate each asset's own volatility and standardize the returns by it, estimate time-varying covariances of those standardized residuals, then assemble a correlation/covariance matrix that's guaranteed to be valid (positive definite) at every point in time.
Just like volatility, correlation across assets tends to rise more when prices are falling together than when they're rising together — a key reason diversification can fail exactly when you need it most.
Given a mean-reverting AR(1), with and |β₁| < 1 — this is the standard set of questions this model gets asked, worked through in order.
— where the series centers over the very long run.
Normal, centered at that mean, with variance — the "resting state" distribution if you sampled r at a random point far in the future.
, distributed — just plug the known value into the model.
, with a 95% interval of .
The forecast converges to the unconditional mean, and the forecast error variance converges to — both simply because .
A recurring exam scenario: forecasts are used to decide whether to buy or sell an asset. Why bother with in-sample / out-of-sample splitting, and how do you actually judge success?
Trying many candidate models makes it likely that at least one fits your particular dataset well purely by chance (overfitting) — and that's more likely the more models you try. An overfit model performs well in-sample but has no real predictive content, so it typically performs poorly out-of-sample. Reserving a truly untouched slice of data for evaluation is the only way to tell a genuinely good model from a lucky one.
Split the data (roughly 2/3 / 1/3). Use the in-sample portion to estimate and select among candidate models with tools like AIC, BIC, or R². Forecast into the untouched out-of-sample portion using the selected model. Then judge those forecasts against a loss function that reflects what you actually care about economically — not just statistical fit.
A natural choice mirrors the trading strategy itself: realized profit, or a risk-adjusted version of it, from actually trading on the forecasts. Simpler statistical losses like mean squared error work fine too if the goal is just comparing forecast accuracy rather than economic performance.
Frame it as a hypothesis test tied to the real objective — e.g. vs. for the strategy's mean return. The broader point: always evaluate a model against the specific economic use it's meant to serve, not a generic statistic.
Combines p autoregressive lags of r with q moving-average lags of ε — used when a series shows both types of dependence at once.
SSE-based fit measure with a mild penalty for extra predictors; smaller is better.
Also known as the Schwarz Information Criterion — similar to AIC but with a steeper penalty for extra predictors, especially in larger samples.
A long-run equilibrium relationship between two individually nonstationary series that keeps them from permanently drifting apart.
A statistically "significant" relationship between two unrelated random walks — a trap, not a finding.
The standard deviation of returns — the everyday stand-in for "risk" in this material.
Beyond skewness, includes probability of loss , expected loss , and Value at Risk, where x is the α-VaR if .