SPB Git

spb/wp46_uqo

Public
4.8 KB

# Model card — igarch11 (Integrated GARCH(1,1))

# 1. Identity

  • model_id: igarch11 · family: classical · tier: A · status: implemented · impl: custom (src/wp46/models/custom.py::IGARCH11)
  • Label: IGARCH(1,1) · distributions: normal, t, ged, skewt
  • Seminal citation: engle1986modelling (Engle & Bollerslev 1986)
  • Other references: nelson1990stationarity (strict stationarity of IGARCH), lumsdaine1996consistency, lee1994asymptotic, jensen2004asymptotic (QMLE under unit persistence); lamoureux1990persistence, mikosch2004nonstationarities, hillebrand2005neglecting (spurious IGARCH from breaks); jpmorgan1996riskmetrics (EWMA, nested).

# 2. Definition

$$r_t = \mu + \varepsilon_t,\ \varepsilon_t = \sigma_t z_t,\qquad \sigma_t^2 = \omega + \alpha,\varepsilon_{t-1}^2 + (1-\alpha),\sigma_{t-1}^2 ,$$ i.e. GARCH(1,1) with $\beta = 1 - \alpha$ imposed (rec_garch(eps, omega, alpha, 1 - alpha, s0)), $\sigma_0^2 = \omega + s_0$ ($s_0$ = backcast, since $\alpha + \beta = 1$). Innovations: normal, t(ν), GED(ν), Hansen skew-t(η, λ) (standardised, distributions.py).

# 3. Parameter space and admissibility

  • Parameters: mu, omega, alpha (+ nu | eta, lambda).
  • Reparameterisation (unconstrained θ): $\omega = e^{\theta_0}$, $\alpha = \sigma(\theta_1) \in (0,1)$ (logistic); t: $\nu = 2.05 + e^{\theta}$; GED: $\nu = 0.3 + e^{\theta}$; skew-t: $\eta = 2.05 + e^{\theta}$, $\lambda = 0.99\tanh(\theta')$.
  • Admissibility flag: $\omega > 0$ and $0 < \alpha < 1$. No covariance stationarity (unconditional variance does not exist); strictly stationary for $\alpha < 1$ (nelson1990stationarity).

# 4. Nesting and relations

Boundary case of garch11 ($\alpha + \beta = 1$); nests ewma094 ($\omega = 0$, $\alpha = 0.06$ — registry ewma094: nested_in: igarch11). Variance forecasts grow linearly in the horizon (unit root in $\varepsilon_t^2$). Related to figarch11 with d = 1.

# 5. Estimation

Custom MLE (CustomModel.fit): objective $-\sum_t[\log f_z(z_t) - \tfrac12\log\sigma_t^2]$ with numba recursion; L-BFGS-B (maxiter 2000, ftol 1e-10, gtol 1e-6) on θ from three starting vectors (ω, α) ∈ {(0.01 v, 0.06), (0.003 v, 0.03), (0.03 v, 0.12)} with $v = \operatorname{var}(r)$ (at least two starts are tried; the third only if the second fails), Nelder–Mead polish (maxiter 4000) if L-BFGS-B does not report success; μ starts at the sample mean; distribution starts ν = 6 / 1.5 / (6, −0.05). Initial variance: arch-style backcast of the demeaned returns ($\sum_{i<75} w_i (r_i - \bar r)^2$, $w_i \propto 0.94^i$), stored in aux["backcast"]. converged = optimizer success with finite objective; inadmissible optima kept and flagged. No standard errors; point estimates only.

# 6. Forecasting

IGARCH11.step_forecast: $\hat\sigma^2_{t+1|t} = \omega + \alpha\varepsilon_t^2 + (1-\alpha)\sigma_t^2$, $\hat\sigma^2_{t+k|t} = \omega + \hat\sigma^2_{t+k-1|t}$ for $k = 2..22$ (linear growth by ω per day). Cumulative $h$-day variance $= h\hat\sigma^2_{t+1|t} + \omega h(h-1)/2$. Method: analytic.

# 7. Implementation

  • src/wp46/models/custom.py::IGARCH11 (custom, numba rec_garch), standardised densities from src/wp46/models/distributions.py (equal to arch's to 1e-12, tests/unit/test_distributions.py).
  • Cross-check (results/metrics/rugarch_crosscheck.json, rugarch iGARCH, Student-t, shared fixture): log-likelihood −3385.4670 (ours) vs −3385.5171 (rugarch), difference +0.0502.
  • Tests: tests/replication/test_rugarch.py (asserts ours ≥ rugarch − 1.0); tests/unit/test_custom_models.py::test_nesting_and_admissibility[IGARCH11] (convergence, admissibility, positive finite 22-step forecasts; excluded from the "nests GARCH(1,1)" log-likelihood assertion). No simulation-recovery test.

# 8. Known limitations / failure modes

Imposes unit persistence even when the data are stationary: on the GJR-t fixture the IGARCH likelihood is 6.0 units below GARCH(1,1) (−3385.47 vs −3379.46). Forecast variance grows without bound with h (h = 22 cumulative variance inflated by $\omega \cdot 231$). $\omega$ near zero makes the model indistinguishable from EWMA. Linear growth makes long-horizon forecasts sensitive to $\hat\omega$.

# 9. Computational footprint

Analytic recursion and forecasts; 3–5 parameters; L-BFGS-B with numerical gradients. Not in the pilot; cost comparable to garch11 custom estimation (a few milliseconds per refit on a 1,000-day window).

# 10. Literature expectations

Near-integrated GARCH estimates are common in long daily samples (engle1986modelling, lamoureux1990persistence); hansen2005forecast include IGARCH among the models that do not beat GARCH(1,1). Expectation: close to GARCH(1,1) at h = 1 for highly persistent instruments, worse at h = 22 because of the absent mean reversion (literature matrix §a.1).

Files · main
Menu

Theme