SPB Git

spb/wp46_uqo

Public
2.9 KB

# Model card — garch12 (GARCH with two variance lags: arch GARCH(p=1, o=0, q=2))

# 1. Identity

  • model_id: garch12 · family: classical · tier: A · status: implemented · impl: arch 8.0.0 (GARCH(p=1, o=0, q=2))
  • Label: GARCH(1,2) · distributions: normal, t, ged, skewt
  • Seminal citation: bollerslev1986generalized
  • Other references: nelson1992inequality, bougerol1992stationarity, francq2004maximum.
  • Naming caveat: arch's q = 2 means two lagged conditional variances; in Bollerslev's convention this is GARCH(2,1). See _discrepancies.md.

# 2. Definition

$$\sigma_t^2 = \omega + \alpha_1\varepsilon_{t-1}^2 + \beta_1\sigma_{t-1}^2 + \beta_2\sigma_{t-2}^2,\qquad r_t = \mu + \sigma_t z_t ,$$ pre-sample terms replaced by the backcast. Innovations: normal, t, GED, Hansen skew-t.

# 3. Parameter space and admissibility

  • Parameters: mu, omega, alpha[1], beta[1], beta[2] (+ distribution).
  • arch bounds/constraints: $\omega \in [10^{-8}v, 10v]$, $\alpha_1, \beta_j \in [0,1]$, $\omega > 0$, $\alpha_1 \ge 0$, $\beta_j \ge 0$, $\alpha_1 + \beta_1 + \beta_2 < 1$. Non-negativity of $\beta_2$ is sufficient, not necessary (nelson1992inequality: with p = 1, q = 2 the necessary and sufficient conditions allow $\beta_2 < 0$ under restrictions) — arch's constraint set is the sufficient one.
  • Admissibility flag: $\alpha_1 + \beta_1 + \beta_2 < 1$.

# 4. Nesting and relations

Nests garch11 ($\beta_2 = 0$). Pre-registered order variant. Not nested in garch21.

# 5. Estimation

As garch11 (arch SLSQP, grid starting values with the GARCH mass split equally across the two variance lags, backcast initialisation, ≤ 2 restarts). Only point estimates are used in the rolling benchmark.

# 6. Forecasting

arch GARCH._analytic_forecast: $\hat\sigma^2_{t+k|t} = \omega + \alpha_1\widetilde{\varepsilon^2}{t+k-1} + \beta_1\tilde\sigma^2{t+k-1} + \beta_2\tilde\sigma^2_{t+k-2}$ (observed values for $s \le t$, forecasts for $s > t$). Cumulative = sum over k ≤ h. Method: analytic.

# 7. Implementation

  • src/wp46/models/arch_models.py (SPECS["garch12"]), arch 8.0.0.
  • Cross-check: not in the rugarch fixture; same garch_recursion as the validated (1,1) case.
  • Tests: none dedicated.

# 8. Known limitations / failure modes

$\beta_1$ and $\beta_2$ are poorly separated (near-collinear lagged variances) → flat likelihood, boundary optima at $\beta_2 = 0$, more SLSQP non-convergence than (1,1); the roots of $1 - \beta_1 L - \beta_2 L^2$ can be close to the unit circle.

# 9. Computational footprint

Analytic; one extra parameter vs garch11. No pilot timing.

# 10. Literature expectations

Same as garch21: hansen2005forecast and the surveys report no systematic out-of-sample gain from higher GARCH orders on daily data. Expectation: statistically indistinguishable from garch11, with a higher failure/inadmissibility count (H5).

Files · main
Menu

Theme