SPB Git

Repository Public Research preview

rm2006.md 3.6 KB

# Model card — rm2006 (RiskMetrics 2006)

# 1. Identity

  • model_id: rm2006 · family: baseline · tier: A · status: implemented · impl: arch 8.0.0 (RiskMetrics2006(), default τ₀ = 1560, τ₁ = 4, k_max = 14, ρ = √2)
  • Label: RiskMetrics 2006 · distributions: normal
  • Seminal citation: registry gives zumbach2007riskmetrics, which is not a key of paper/references.bib; the verified key is zumbach2009riskmetrics (SSRN posting of the 2007 RiskMetrics Group document) — see _discrepancies.md.
  • Other references: jpmorgan1996riskmetrics (predecessor), ding1996modeling (long-memory motivation).

# 2. Definition (as implemented by arch)

$$\sigma_t^2 = \sum_{k=1}^{14} w_k,\sigma_{k,t}^2,\qquad \sigma_{k,t}^2 = \mu_k,\sigma_{k,t-1}^2 + (1-\mu_k),\varepsilon_{t-1}^2,$$ $$\tau_k = \tau_1\rho^{k-1},\quad \mu_k = e^{-1/\tau_k},\quad w_k \propto 1 - \frac{\ln\tau_k}{\ln\tau_0},\ \ \sum_k w_k = 1,\qquad \tau_0 = 1560,\ \tau_1 = 4,\ \rho = \sqrt2 .$$ Each component is initialised with its own backcast (exponentially weighted mean of the first squared residuals, weights $\mu_k^i$ up to the lag where $\mu_k^i < 0.01$). Mean: $r_t = \mu + \varepsilon_t$; innovations N(0,1).

# 3. Parameter space and admissibility

No estimated volatility parameter (only mu). The multi-scale kernel has unit total persistence ($\sum_k w_k[\mu_k + (1-\mu_k)] = 1$): integrated, no unconditional variance. Admissibility flag always True.

# 4. Nesting and relations

Weighted sum of 14 EWMA (IGARCH(1,1), ω = 0) components with decays from τ = 4 days to τ = 4·√2¹³ ≈ 362 days; ewma094 is the single-component special case (λ = 0.94 ↔ τ ≈ 16.2 days). Long-memory-like kernel without estimation (literature matrix §a.1), related in spirit to FIGARCH/HAR hyperbolic weights.

# 5. Estimation

arch ConstantMean + RiskMetrics2006() + Normal; SLSQP over μ only (fit(disp="off", options={"maxiter": 1000}), ≤ 2 restarts, see ArchModel.fit); per-component backcasts as in §2. Only point estimates are used; filtering with am.fix(params).

# 6. Forecasting

arch _analytic_forecast for RiskMetrics2006 repeats the one-step forecast at all horizons: $\hat\sigma^2_{t+k|t} = \hat\sigma^2_{t+1|t} = \sum_k w_k,\sigma^2_{k,t+1}$, $k = 1..22$ (flat); cumulative $h$-day variance $= h,\hat\sigma^2_{t+1|t}$. Method: analytic. Note: the original RM2006 methodology (zumbach2009riskmetrics) derives horizon-dependent forecasts from the multi-scale kernel; arch 8.0.0 does not implement them (recorded in _discrepancies.md).

# 7. Implementation

  • src/wp46/models/arch_models.py (SPECS["rm2006"], fixed=True), arch 8.0.0 (sheppard2025arch).
  • Cross-check: none (not in the rugarch fixture; rugarch has no RM2006).
  • Tests: none dedicated; not in the pilot.

# 8. Known limitations / failure modes

No estimation risk, but fixed weights calibrated by RiskMetrics Group on pre-2007 data; integrated (flat) term structure in this implementation; sensitive to the backcast in short samples (components with τ up to 362 days need long histories — the 1,000-day window covers ≈ 2.8 τ_max).

# 9. Computational footprint

14 EWMA recursions per likelihood evaluation, one optimised parameter; analytic forecasts. Cheap. No pilot timing.

# 10. Literature expectations

Not covered by hansen2005forecast (2005 predates RM2006). The literature matrix lists RM2006 as an optional multi-horizon baseline whose long-memory kernel should behave like a non-estimated FIGARCH/HAR; expectation: competitive with GARCH(1,1) at h = 1, with the flat term structure limiting h = 22 performance.

Files main
Menu

Theme