SPB Git

Repository Public Research preview

rm2006.md 3.6 KB 39 lines markdown

1# Model card — `rm2006` (RiskMetrics 2006)23## 1. Identity4- **model_id:** `rm2006` · **family:** baseline · **tier:** A · **status:** implemented · **impl:** arch 8.0.0 (`RiskMetrics2006()`, default τ₀ = 1560, τ₁ = 4, k_max = 14, ρ = √2)5- **Label:** RiskMetrics 2006 · **distributions:** normal6- **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`.7- **Other references:** `jpmorgan1996riskmetrics` (predecessor), `ding1996modeling` (long-memory motivation).89## 2. Definition (as implemented by arch)10$$\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,$$11$$\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 .$$12Each 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).1314## 3. Parameter space and admissibility15No 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`.1617## 4. Nesting and relations18Weighted 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.1920## 5. Estimation21arch `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)`.2223## 6. Forecasting24arch `_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`).2526## 7. Implementation27- `src/wp46/models/arch_models.py` (`SPECS["rm2006"]`, `fixed=True`), arch 8.0.0 (`sheppard2025arch`).28- Cross-check: none (not in the rugarch fixture; rugarch has no RM2006).29- Tests: none dedicated; not in the pilot.3031## 8. Known limitations / failure modes32No 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).3334## 9. Computational footprint3514 EWMA recursions per likelihood evaluation, one optimised parameter; analytic forecasts. Cheap. No pilot timing.3637## 10. Literature expectations38Not 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.39
Files main
Menu

Theme