SPB Git

spb/wp46_uqo

Public
3.5 KB

# Model card — ewma094 (EWMA / RiskMetrics 1994, λ = 0.94)

# 1. Identity

  • model_id: ewma094 · family: baseline · tier: A · status: implemented · impl: arch 8.0.0 (EWMAVariance(lam=0.94), λ fixed)
  • Label: EWMA (RiskMetrics 1994, lambda = 0.94) · distributions: normal
  • Seminal citation: jpmorgan1996riskmetrics (RiskMetrics Technical Document, 4th ed.)
  • Other references: engle1986modelling (IGARCH, of which EWMA is the zero-intercept case; registry nested_in: igarch11); zumbach2009riskmetrics (RM2006 successor).

# 2. Definition

$$r_t = \mu + \varepsilon_t,\qquad \sigma_t^2 = \lambda,\sigma_{t-1}^2 + (1-\lambda),\varepsilon_{t-1}^2,\qquad \lambda = 0.94 .$$ arch's ewma_recursion starts from $\sigma_0^2$ = backcast. Innovation law: N(0,1) (only μ is estimated; the Gaussian likelihood is used to estimate μ).

# 3. Parameter space and admissibility

  • Estimated: mu only. λ is fixed at 0.94 (parameter_names() is empty for the volatility process).
  • $0 < \lambda < 1$ enforced at construction. No stationarity: the process is integrated ($\lambda + (1-\lambda) = 1$) and has no unconditional variance. Admissibility flag always True (no check in ArchModel.fit).

# 4. Nesting and relations

EWMA = IGARCH(1,1) with $\omega = 0$, $\alpha = 1-\lambda = 0.06$, $\beta = \lambda$ (igarch11 card); = GARCH(1,1) on the unit-persistence boundary with zero intercept. rm2006 is a weighted mixture of 14 EWMAs with different decays.

# 5. Estimation

arch ConstantMean + EWMAVariance(0.94) + Normal, fit(disp="off", options={"maxiter": 1000}): SLSQP over the single parameter μ (Gaussian log-likelihood with the EWMA variance path); starting value = sample mean; backcast = exponentially weighted average of the first min(75, T) squared residuals (weights ∝ 0.94ⁱ). Restarts (≤ 2) as for all arch-backed models (src/wp46/models/arch_models.py::ArchModel.fit). Only point estimates are used in the rolling benchmark; filtering with am.fix(params).

# 6. Forecasting

arch _analytic_forecast for EWMA: $\hat\sigma^2_{t+1|t} = \lambda\sigma_t^2 + (1-\lambda)\varepsilon_t^2$ and $\hat\sigma^2_{t+k|t} = \hat\sigma^2_{t+1|t}$ for $k = 2..22$ (flat; a martingale variance). Cumulative $h$-day variance $= h,\hat\sigma^2_{t+1|t}$. Method: analytic.

# 7. Implementation

  • src/wp46/models/arch_models.py (SPECS["ewma094"], fixed=True), arch 8.0.0 (sheppard2025arch).
  • Cross-check: none in results/metrics/rugarch_crosscheck.json (parameter-free recursion; rugarch has no fixed-λ EWMA entry in the fixture script).
  • Tests: no dedicated test; not in the pilot.

# 8. Known limitations / failure modes

Fixed decay calibrated on 1990s daily data; integrated dynamics give a flat term structure (no mean reversion), which the literature identifies as its main weakness at h = 5, 22. Cannot fail to converge in the variance recursion (only μ is optimised).

# 9. Computational footprint

One-parameter SLSQP, analytic forecasts: among the cheapest estimated models. No pilot timing.

# 10. Literature expectations

hansen2005forecast include RiskMetrics-type EWMA among the dominated benchmarks on the DM/$ and IBM series; jpmorgan1996riskmetrics is a risk-management standard rather than a forecasting contender. The literature matrix (§a.1) lists it as an "industry baseline; flat term structure" — expectation: close to GARCH(1,1) at h = 1 in calm periods, inferior at h = 22 and in regimes where mean reversion matters.

Files · main
Menu

Theme