SPB Git

spb/wp46_uqo

Public
4.0 KB

# Model card — qgarch11 (QGARCH(1,1), Sentana's quadratic GARCH)

# 1. Identity

  • model_id: qgarch11 · family: asymmetric · tier: A · status: implemented · impl: custom (src/wp46/models/custom.py::QGARCH11)
  • Label: QGARCH(1,1) (Sentana) · distributions: normal, t, ged, skewt
  • Seminal citation: sentana1995quadratic
  • Other references: engle1993measuring (NAGARCH, the shifted form), glosten1993relation.

# 2. Definition

$$r_t = \mu + \varepsilon_t,\ \varepsilon_t = \sigma_t z_t,\qquad \sigma_t^2 = \omega + \alpha,\varepsilon_{t-1}^2 + \gamma,\varepsilon_{t-1} + \beta,\sigma_{t-1}^2 ,$$ rec_qgarch with $\sigma_0^2 = \omega + (\alpha+\beta)s_0$ and a floor $\sigma_t^2 \ge 10^{-12}$ inside the recursion. Innovations: normal, t, GED, Hansen skew-t.

# 3. Parameter space and admissibility

  • Parameters: mu, omega, alpha, gamma, beta (+ distribution).
  • Positivity: $\omega + \alpha\varepsilon^2 + \gamma\varepsilon > 0$ for all ε ⇔ $\gamma^2 < 4\alpha\omega$ (minimum of the quadratic at $\varepsilon = -\gamma/(2\alpha)$ equals $\omega - \gamma^2/(4\alpha)$).
  • Reparameterisation: $\omega = e^{\theta_0}$, $s = \alpha+\beta = \sigma(\theta_1)$, $\alpha = s,\sigma(\theta_2)$, $\gamma = 2\sqrt{\alpha\omega},\tanh(\theta_3)$ (so the positivity condition holds by construction).
  • Admissibility flag: $\omega > 0$, $\alpha > 0$ (strict), $\beta \ge 0$, $\alpha + \beta < 1$, $\gamma^2 < 4\alpha\omega$.

# 4. Nesting and relations

Nests garch11 (γ = 0). Linear-asymmetry counterpart of nagarch11 (news-impact parabola shifted by $-\gamma/(2\alpha)$, a constant shift in ε rather than one proportional to σ). Sentana's general quadratic ARCH includes cross terms not used here.

# 5. Estimation

Custom MLE (CustomModel.fit): L-BFGS-B on θ from three starts (ω, α, γ, β) ∈ {(0.05v, 0.06, −0.3√(0.05v·0.06), 0.90), (0.03v, 0.10, 0, 0.87), (0.1v, 0.1, −0.5√(0.1v·0.1), 0.8)}, Nelder–Mead polish on failure; μ start = sample mean; backcast $s_0$ arch-style. Point estimates only.

# 6. Forecasting

QGARCH11.step_forecast: $\hat\sigma^2_{t+1|t} = \max(\omega + \alpha\varepsilon_t^2 + \gamma\varepsilon_t + \beta\sigma_t^2,\ 10^{-12})$; for $k \ge 2$, $\hat\sigma^2_{t+k|t} = \omega + (\alpha+\beta)\hat\sigma^2_{t+k-1|t}$ (uses $E[\varepsilon_{t+j}\mid\mathcal F_t] = 0$, exact for all four zero-mean laws). Cumulative = sum over k ≤ h. Method: analytic.

# 7. Implementation

  • src/wp46/models/custom.py::QGARCH11 (numba rec_qgarch).
  • Cross-check: none — QGARCH is in neither arch 8.0.0 nor rugarch 1.5-6; not in results/metrics/rugarch_crosscheck.json. The registry marks it custom (validated vs arch/rugarch) by the generic impl comment, but no library reference exists for this architecture (recorded in _discrepancies.md; it is the only scored custom architecture without any library counterpart besides gas_t11 and garchx_rv11).
  • Tests: tests/unit/test_custom_models.py::test_nesting_and_admissibility[QGARCH11] (converged, admissible, log-likelihood ≥ GARCH(1,1) − 0.5, positive finite 22-step forecasts). No simulation-recovery test, no rugarch test.

# 8. Known limitations / failure modes

The positivity bound $\gamma^2 < 4\alpha\omega$ is restrictive when ω is small (highly persistent series): γ is then forced toward zero and the model collapses to GARCH(1,1), so the asymmetry cannot be large on persistent equity series. Admissibility requires α > 0 strictly (α → 0 makes γ → 0 by construction). Floors at 1e-12 silently mask any numerical negativity.

# 9. Computational footprint

Analytic; 5–7 parameters; same cost order as nagarch11. Not in the pilot.

# 10. Literature expectations

sentana1995quadratic shows the quadratic form captures asymmetry with a linear term; the literature matrix lists QGARCH as "custom (if time permits)" and notes the positivity restriction. hansen2005forecast do not include QGARCH. Expectation: between GARCH(1,1) and NAGARCH on equities; the positivity constraint is the main practical limitation (H5: more boundary optima).

Files · main
Menu

Theme