RiskMetrics EWMA Variance Forecasting and Half-Life

Time Series · Medium · Free problem

Daily variance follows the RiskMetrics EWMA recursion:

$\sigma_t^2 = (1 - \lambda)\, r_{t-1}^2 + \lambda\, \sigma_{t-1}^2$

where $r_t$ is the daily return and $0 < \lambda < 1$ is the decay parameter (typically $\lambda \approx 0.94$ for daily data).

  1. Forecast: Derive the variance forecast $h$ steps ahead, $\hat{\sigma}_{t+h|t}^2$, in terms of the current variance $\sigma_t^2$, $\lambda$, and $h$.
  1. Half-life: Show that the half-life of a variance shock -- the number of days until the weight on a squared return drops to half its initial value -- is $H = \ln(1/2) / \ln(\lambda)$.
  1. GARCH connection: The EWMA is a special case of GARCH(1,1): $\sigma_t^2 = \omega + \alpha\, r_{t-1}^2 + \beta\, \sigma_{t-1}^2$. Explain what restrictions on $(\omega, \alpha, \beta)$ reduce GARCH to EWMA, and discuss how to initialize $\sigma_0^2$ to avoid startup bias.

Hints

  1. The EWMA recursion is a weighted average of past squared returns with weights $(1 - \lambda)\lambda^j$. What happens when you forecast future variance if you expect $E_t[r_{t+k}^2] = \sigma_t^2$?
  2. For the half-life, set the exponential weight $\lambda^j$ equal to
    /2$ and solve for $j$. For the GARCH connection, compare the GARCH recursion $\sigma_t^2 = \omega + \alpha r_{t-1}^2 + \beta \sigma_{t-1}^2$ term-by-term with the EWMA recursion.
  3. The EWMA is IGARCH ($\alpha + \beta = 1$), which means the unconditional variance $\omega / (1 - \alpha - \beta)$ is undefined. This is why initialization matters -- there is no long-run mean to anchor $\sigma_0^2$ to.

Worked Solution

How to Think About It: The EWMA variance model is the workhorse of bank risk management -- simple, one parameter, no long-run variance to estimate. The key insight is that EWMA is just an exponentially weighted average of past squared returns, so the forecast $h$ steps ahead has a clean geometric form. The half-life question is really asking: how fast does the model forget old data? And the GARCH connection reveals that EWMA is GARCH without mean reversion -- which is both its strength (parsimony) and its weakness (no anchor).

Quick Sanity Checks: - For $h = 1$, the forecast should just be today's variance $\sigma_t^2$. - As $h \to \infty$, the forecast should stay at $\sigma_t^2$ (EWMA has no long-run mean to revert to). - Half-life with $\lambda = 0.94$ should give roughly $H \approx 11$ days. - Setting $\omega = 0$ in GARCH should kill mean reversion, leaving pure EWMA.

Part (i): $h$-Step Variance Forecast

The EWMA recursion is:

$\sigma_{t+1}^2 = (1 - \lambda)\, r_t^2 + \lambda\, \sigma_t^2$

To forecast, note that the best forecast of $r_t^2$ is $\sigma_t^2$ (returns are mean-zero and serially uncorrelated). So the conditional expectation of next period's variance given information at time $t$ is:

$E_t[\sigma_{t+1}^2] = (1 - \lambda)\, \sigma_t^2 + \lambda\, \sigma_t^2 = \sigma_t^2$

Applying this recursively:

$E_t[\sigma_{t+h}^2] = \sigma_t^2 \quad \text{for all } h \geq 1$

This is because EWMA is an integrated model (the IGARCH special case) -- variance forecasts are flat. There is no mean reversion. Today's variance estimate is the best forecast at every horizon.

Alternatively, you can see this by unrolling the recursion. The EWMA variance at time $t$ is:

$\sigma_t^2 = (1 - \lambda) \sum_{j=0}^{\infty} \lambda^j\, r_{t-1-j}^2$

This is a weighted average of all past squared returns with exponentially decaying weights that sum to 1. Since $E_t[r_{t+k}^2] = \sigma_t^2$ for future returns, the forecast is flat.

Part (ii): Half-Life of a Variance Shock

The weight assigned to $r_{t-1-j}^2$ in the EWMA is $(1 - \lambda)\lambda^j$. We want the value of $j$ at which this weight drops to half the weight on the most recent observation:

$(1 - \lambda)\lambda^j = \frac{1}{2}(1 - \lambda)$

$\lambda^j = \frac{1}{2}$

Taking logs:

$j \ln(\lambda) = \ln(1/2)$

$H = \frac{\ln(1/2)}{\ln(\lambda)}$

For $\lambda = 0.94$: $H = \ln(0.5) / \ln(0.94) = -0.693 / (-0.0619) \approx 11.2$ days.

This means the RiskMetrics daily model effectively uses about 11 days of data before a return's influence drops by half. For the monthly model ($\lambda = 0.97$), $H \approx 22.8$ days.

Part (iii): GARCH(1,1) Connection and Initialization

The GARCH(1,1) model is:

$\sigma_t^2 = \omega + \alpha\, r_{t-1}^2 + \beta\, \sigma_{t-1}^2$

To reduce GARCH to EWMA, set: - $\omega = 0$ - $\alpha = 1 - \lambda$ - $\beta = \lambda$

This gives $\alpha + \beta = 1$, which is the IGARCH (Integrated GARCH) constraint. The key consequence: with $\omega = 0$ and $\alpha + \beta = 1$, the unconditional variance $\bar{\sigma}^2 = \omega / (1 - \alpha - \beta)$ is undefined (denominator is zero). The model has no long-run mean to revert to -- variance shocks persist forever.

In a standard GARCH with $\alpha + \beta < 1$, variance mean-reverts to $\bar{\sigma}^2 = \omega / (1 - \alpha - \beta)$. EWMA sacrifices this mean reversion for one fewer parameter.

Initialization: Since EWMA has no unconditional variance, you cannot initialize $\sigma_0^2 = \bar{\sigma}^2$ as you would in GARCH. Common approaches:

  1. Sample variance: Set $\sigma_0^2$ equal to the sample variance of the first $k$ returns (e.g., first 20-60 days). Simple but sensitive to the window.
  1. Backcast (RiskMetrics approach): Run the EWMA recursion backward from $T$ to 1 to get a "warm start" estimate for $\sigma_0^2$. This uses $\sigma_0^2 = (1 - \lambda) \sum_{j=0}^{T-1} \lambda^j r_{T-j}^2 / \sum_{j=0}^{T-1} \lambda^j$.
  1. Burn-in: Start with any reasonable $\sigma_0^2$ but discard the first $N \approx 3H$ to $4H$ observations (about 30-50 days for $\lambda = 0.94$). By then, the weight on $\sigma_0^2$ is $\lambda^N < 0.06$, so initialization barely matters.

The burn-in approach is the most robust in practice: it works regardless of how wrong your initial guess is, as long as you throw away enough early estimates.

Answer:

  1. The $h$-step forecast is flat: $\hat{\sigma}_{t+h|t}^2 = \sigma_t^2$ for all $h \geq 1$ (EWMA is an IGARCH process with no mean reversion).
  1. Half-life: $H = \ln(1/2) / \ln(\lambda)$, giving approximately 11 days for $\lambda = 0.94$.
  1. EWMA = GARCH(1,1) with $\omega = 0$, $\alpha = 1 - \lambda$, $\beta = \lambda$ (so $\alpha + \beta = 1$). Initialize $\sigma_0^2$ with the sample variance or a backcast, and use a burn-in of $3H$-$4H$ observations to eliminate startup sensitivity.

Intuition

The RiskMetrics EWMA model captures a fundamental trade-off in volatility estimation: simplicity versus mean reversion. With just one parameter $\lambda$, it says "recent returns matter more than old ones, and the influence decays geometrically." The half-life formula $H = \ln(1/2)/\ln(\lambda)$ makes this tangible -- for $\lambda = 0.94$, data older than about 11 days has less than half the influence of yesterday's return. This is exactly the kind of quick mental math a risk manager uses: "my VaR estimate is driven by roughly the last two weeks of data."

The connection to GARCH reveals what EWMA gives up for its simplicity. By forcing $\alpha + \beta = 1$, EWMA eliminates mean reversion -- a variance spike persists in the forecast forever (flat term structure of variance). In reality, volatility mean-reverts, so EWMA will chronically overestimate variance after a shock and underestimate it during calm periods. This is why desks that use EWMA for VaR often find their models overshoot after events like flash crashes. GARCH with $\alpha + \beta < 1$ handles this better, at the cost of estimating two extra parameters. The initialization issue is a practical nuisance that trips up junior quants -- always use a burn-in period or backcast, never just set $\sigma_0^2 = 0$.

Open the full interactive solver →