SPB Git

Repository Public Research preview

garchx_rv11.md 4.3 KB

# Model card — garchx_rv11 (GARCH-X(1,1) with the lagged realized measure)

# 1. Identity

  • model_id: garchx_rv11 · family: realized (Tier B) · tier: B · status: implemented · impl: custom (src/wp46/models/custom.py::GARCHXRV11, subclass of HEAVY11)
  • Label: GARCH-X(1,1) with lagged realized measure · distributions: normal, t
  • Seminal citation: engle2002new (GARCH-X with realized regressors, "New frontiers for ARCH models")
  • Other references: shephard2010realising (HEAVY; the RM equation reused here), hansen2012realized, bollerslev1986generalized; rugarch external.regressors in the variance equation (literature matrix) — not run.

# 2. Definition

$$r_t = \mu + \varepsilon_t,\ \varepsilon_t = \sigma_t z_t,\qquad \sigma_t^2 = \omega + \alpha,\varepsilon_{t-1}^2 + \gamma,RM_{t-1} + \beta,\sigma_{t-1}^2,$$ with the auxiliary HEAVY-RM equation $\mu_t = \omega_R + \alpha_R RM_{t-1} + \beta_R\mu_{t-1}$ used only to forecast $RM$ beyond t (the auxiliary equation is the code's choice; engle2002new does not specify it). rec_garchx: $\sigma_0^2 = s_0$ (backcast). Innovations: normal, t(ν).

# 3. Parameter space and admissibility

  • Parameters: mu, omega, alpha, gamma, beta, omega_r, alpha_r, beta_r (+ nu).
  • Reparameterisation: $\omega = e^{\theta}$, $\alpha+\beta = \sigma(\theta)$, $\alpha = (\alpha+\beta)\sigma(\theta')$, $\gamma = e^{\theta}$ (positive, unbounded), $\omega_R = e^{\theta}$, $\alpha_R+\beta_R = \sigma(\theta)$, $\alpha_R = (\alpha_R+\beta_R)\sigma(\theta')$.
  • Admissibility flag: $\omega > 0$, $\alpha, \gamma, \beta \ge 0$, $\alpha + \beta < 1$ (stationarity given a stationary RM), $\omega_R > 0$, $\alpha_R + \beta_R < 1$.

# 4. Nesting and relations

Nests garch11 (γ = 0) and HEAVY-r (α = 0: $\sigma_t^2 = \omega + \gamma RM_{t-1} + \beta\sigma_{t-1}^2$); the "matched-information" bridge between Tier A and Tier B in the design.

# 5. Estimation

As heavy11: joint QL = return log-likelihood (normal/t) + multiplicative-error QL of the RM equation, one L-BFGS-B run (maxiter 2000) from three starts (ω, α, γ, β, ω_R, α_R, β_R) ∈ {(0.05 m, 0.03, 0.3, 0.6, 0.05 m, 0.4, 0.55), (0.1 m, 0.05, 0.2, 0.7, 0.1 m, 0.3, 0.6), (0.02 m, 0.1, 0.4, 0.45, 0.02 m, 0.5, 0.48)}, Nelder–Mead polish on failure; backcast $s_0$ arch-style; μ_0 of the RM equation = mean of the first 75 RM. Point estimates only; reported loglik is the joint QL.

# 6. Forecasting

GARCHXRV11.step_forecast: $\hat\sigma^2_{t+1|t} = \omega + \alpha\varepsilon_t^2 + \gamma RM_t + \beta\sigma_t^2$, $\hat\mu_{t+1} = \omega_R + \alpha_R RM_t + \beta_R\mu_t$; for $k \ge 2$, $$\hat\sigma^2_{t+k|t} = \omega + (\alpha+\beta),\hat\sigma^2_{t+k-1|t} + \gamma,\hat\mu_{t+k-1},\qquad \hat\mu_{t+k} = \omega_R + (\alpha_R+\beta_R),\hat\mu_{t+k-1},$$ exact under $E[\varepsilon^2_{t+j}\mid\mathcal F_t] = \hat\sigma^2_{t+j|t}$ and the RM equation. Cumulative = sum over k ≤ h. Method: analytic.

# 7. Implementation

  • src/wp46/models/custom.py::GARCHXRV11 (numba rec_garchx, rec_heavy_r).
  • Cross-check: none against a library (not in results/metrics/rugarch_crosscheck.json).
  • Tests: tests/unit/test_custom_models.py::test_realized_models_fit_on_synthetic_measure (converged, positive finite 22-step forecasts). No simulation-recovery test, no rugarch test (gap vs CLAUDE.md rule 6, recorded in _discrepancies.md).

# 8. Known limitations / failure modes

α and γ compete for the same information (realized measure vs squared return): α often → 0, γ dominates (then the model is HEAVY-r); γ unbounded above; the sigmoid persistence $\alpha+\beta < 1$ ignores the extra persistence transmitted through the RM equation (the reduced-form persistence is larger); imputed $r^2$ on invalid sessions; the auxiliary RM forecast drives h = 22 results.

# 9. Computational footprint

Analytic; 8–9 parameters; two recursions per evaluation. Not in the pilot.

# 10. Literature expectations

engle2002new proposes realized regressors in GARCH; shephard2010realising show that once $RM_{t-1}$ is included the $\varepsilon^2$ term adds little (HEAVY-r); hansen2012realized find similar. Expectation: performance close to HEAVY at h = 1 (H3), with the information-set comparison to garch11 being the design's main use of this model.

Files main
Menu

Theme