Dynamic Factor Models
A way to compress dozens or hundreds of correlated economic or financial time series into a handful of common underlying drivers, each with its own evolution over time, separating shared movement from series-specific noise.
Prerequisites: Structural VAR Identification
An economist tracks a hundred monthly indicators — industrial production, housing starts, employment, retail sales, dozens more — trying to gauge whether the economy is heating up or cooling down. Watching all hundred separately is overwhelming and noisy: each series has its own idiosyncratic wiggle from measurement quirks or sector-specific events. But most of these series tend to rise and fall together around business-cycle turning points, suggesting a small number of common forces are driving the bulk of the shared movement. A dynamic factor model formalizes this: it extracts a few common factors that move over time and explain most of the co-movement across all hundred series, while cleanly separating out what's left as each series' own private noise.
An analogy: a choir and its conductor
Picture a large choir where every singer's individual note wavers slightly from moment to moment — some go a touch sharp, some a touch flat, purely by chance. But underneath all that individual noise, the conductor's tempo and dynamics (getting louder, slowing down) pull every singer's volume and pace in the same direction at the same time. If you only listened to one singer, you'd hear mostly their personal wobble. Listen to the whole choir together, though, and the conductor's signal — the shared, common factor — becomes clear, because it's the one thing correlated across every voice, while each singer's private wobble averages out. A dynamic factor model is the statistical version of picking out the conductor's signal from a hundred individually noisy voices.
The mechanics, one symbol at a time
Each observed series (series at time ) is modeled as its own loading on a small set of common factors , plus an idiosyncratic residual:
where is a vector of a handful of common factors (far fewer than the number of series), is series 's loading — how strongly and in which direction series responds to the common factors — and is series 's own private noise, assumed largely uncorrelated with other series' noise. In plain English: every observed number is mostly explained by a shared, small set of underlying forces (weighted differently for each series), plus a bit of series-specific leftover. What makes it dynamic rather than a plain static factor model is that the factors themselves evolve over time following their own small VAR:
meaning the common factors have their own momentum and predictability, not just a snapshot value each period — so today's factor level helps forecast tomorrow's, and by extension, tomorrow's value in every series that loads on it.
Worked example 1: two indicators and one factor
Suppose industrial production and employment growth both load on a single "business cycle" factor , with loadings and . If the factor currently reads (half a standard deviation above its historical average, a modest expansion signal), the model's expected values are for industrial production and for employment growth (in standardized units), before adding each series' own noise. If the actual observed industrial production reading is 0.80, the idiosyncratic component is — a bit of series-specific strength beyond what the common cycle explains, perhaps a one-off surge in a particular sector.
Worked example 2: forecasting one period ahead
Suppose the factor follows a simple AR(1): , and last period's factor was . The forecast for next period's factor is . Plugging into the loadings from example 1, next period's forecast for industrial production is and for employment growth is — both series' forecasts move together because they share the same underlying factor forecast, even though no direct forecasting model was built for either series individually. This is the practical payoff: forecast one small factor process, and get consistent forecasts across every series that loads on it.
What this means in practice
Dynamic factor models are the workhorse behind "nowcasting" indices (like the Fed's real-time GDP trackers) that blend hundreds of noisy, mixed-frequency data releases into a single coherent read on the economy, updated as each new release arrives. In markets, they're used to build macro regime signals and to strip common market-wide movement out of a large universe of assets, isolating true idiosyncratic behavior — a role closely related to statistical factor models (see Fundamental vs Statistical Factor Models).
A dynamic factor model explains a large panel of correlated series with a small number of common factors that themselves evolve over time, separating genuinely shared movement (the conductor) from each series' own private noise (the singer's wobble) — and letting one small factor forecast propagate consistently into every series.
The classic mistake is assuming the number of factors is obvious or fixed once chosen. Too few factors leaves real common movement misclassified as idiosyncratic noise; too many starts fitting series-specific noise as if it were shared signal, and the model's forecasts become unstable out of sample. The number of factors should be chosen with a formal criterion (such as an information-criterion approach) and re-checked periodically — it is not a one-time modeling decision to set and forget.
Related concepts
Practice in interviews
Further reading
- Stock and Watson, Dynamic Factor Models, in Oxford Handbook of Economic Forecasting
- Lütkepohl, New Introduction to Multiple Time Series Analysis, ch. 18