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, numbarec_garch), standardised densities fromsrc/wp46/models/distributions.py(equal to arch's to 1e-12,tests/unit/test_distributions.py).- Cross-check (
results/metrics/rugarch_crosscheck.json, rugarchiGARCH, 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).