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(numbarec_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 itcustom (validated vs arch/rugarch)by the genericimplcomment, but no library reference exists for this architecture (recorded in_discrepancies.md; it is the only scored custom architecture without any library counterpart besidesgas_t11andgarchx_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).