Model card — arch5 (ARCH(5))
1. Identity
- model_id:
arch5· family: classical · tier: A · status: implemented · impl: arch 8.0.0 (ARCH(p=5)) - Label: ARCH(5) · distributions: normal, t, ged, skewt
- Seminal citation:
engle1982autoregressive - Other references:
bollerslev1986generalized(GARCH as parsimonious ARCH(∞));bollerslev1992arch,engle2001garch(surveys); innovation lawsbollerslev1987conditionally(t),nelson1991conditional(GED),hansen1994autoregressive(skew-t).
2. Definition
$$r_t = \mu + \varepsilon_t,\quad \varepsilon_t = \sigma_t z_t,\qquad \sigma_t^2 = \omega + \sum_{i=1}^{5}\alpha_i,\varepsilon_{t-i}^2 .$$ Pre-sample squared residuals ($t - i < 0$) are replaced by the backcast. Innovation laws (arch parameterisations, all with unit variance): normal; Student-t (ν); GED (ν); Hansen skew-t (η, λ).
3. Parameter space and admissibility
- Parameters:
mu, omega, alpha[1..5](+nu/eta, lambda). - arch bounds: $\omega \in [10^{-8}v, 10v]$ with $v = \overline{\varepsilon^2}$; $\alpha_i \in [0, 1]$; constraints $\omega > 0$, $\alpha_i \ge 0$, $\sum_i\alpha_i < 1$ (linear inequalities passed to SLSQP). Distribution bounds: ν ∈ [2.05, 500] (t), ν ∈ [1.01, 500] (GED), η ∈ [2.05, 300], λ ∈ [−1, 1].
- Admissibility flag (
ArchModel.fit): $\sum_i \alpha_i < 1$ (second-order stationarity). Positivity $\omega > 0$, $\alpha_i \ge 0$ is sufficient (and necessary for pure ARCH).
4. Nesting and relations
Nests constvar (α = 0). Not nested in GARCH(1,1) (which is ARCH(∞) with geometrically decaying weights); the registry keeps ARCH(5) as the pre-specified "pure ARCH" order variant. The HAR regressors (daily/weekly/monthly averages) are a restricted long ARCH on realized measures.
5. Estimation
arch ConstantMean + ARCH(5) + distribution, fit(disp="off", options={"maxiter": 1000}): SLSQP on the exact log-likelihood $\sum_t[\log f_z(\varepsilon_t/\sigma_t) - \tfrac12\log\sigma_t^2]$ with the bounds/constraints of §3. Starting values: arch grid over $\alpha \in {0.10, 0.15, …, 0.90}$ split equally across the 5 lags, $\omega = (1-\alpha)\operatorname{var}(\varepsilon)$, best Gaussian log-likelihood kept. Initial variance: backcast $= \sum_{i<\min(75,T)} w_i\varepsilon_i^2$, $w_i \propto 0.94^i$. Retries: ≤ 2 restarts from the previous estimate scaled by $0.9 + 0.2(i+1)/3$ with maxiter 2000 if convergence_flag ≠ 0. Warnings (ConvergenceWarning, DataScaleWarning — arch warns but does not rescale) stored in notes. Only point estimates are used in the rolling benchmark.
6. Forecasting
arch GARCH._analytic_forecast (ARCH is GARCH(p=5, o=0, q=0)): $\hat\sigma^2_{t+k|t} = \omega + \sum_{i=1}^{5}\alpha_i,\widetilde{\varepsilon^2}{t+k-i}$ where $\widetilde{\varepsilon^2}{s} = \varepsilon_s^2$ for $s \le t$ and $= \hat\sigma^2_{s|t}$ for $s > t$. Exact under $E[z^2] = 1$. Cumulative $h$-day variance = sum of the per-step forecasts. Method: analytic.
7. Implementation
src/wp46/models/arch_models.py(SPECS["arch5"]), arch 8.0.0 (sheppard2025arch).- Cross-check: not in the rugarch fixture (
results/metrics/rugarch_crosscheck.jsoncovers garch11, gjr11, egarch11, aparch11, figarch11, igarch11, cgarch11, nagarch11, garch11-skewt); the recursion is arch'sgarch_recursion, which the custom GARCH(1,1) test matches to 1e-9 (tests/unit/test_custom_models.py::test_custom_garch_equals_arch_loglik_and_forecast). - Tests: none dedicated; distributions checked in
tests/unit/test_distributions.py::test_loglik_matches_arch.
8. Known limitations / failure modes
Short memory (5 days): under-reacts to persistent volatility; estimates frequently hit the $\alpha_i = 0$ bound or the $\sum\alpha_i < 1$ constraint on persistent series (boundary optima, SLSQP convergence_flag ≠ 0); forecasts revert to $\omega/(1-\sum\alpha_i)$ within a few days. Fourth-moment conditions for QMLE inference (he1999properties) are not checked (only point estimates are used).
9. Computational footprint
Analytic forecasts; 7–9 parameters; the 5-lag recursion is numba-compiled in arch. No pilot timing (not in the pilot). Expected cost between garch11 and aparch11.
10. Literature expectations
hansen2005forecast report ARCH(q) specifications among the worst of their 330 models on both DM/$ and IBM; bollerslev1986generalized motivated GARCH precisely by the long ARCH orders needed. Expectation: dominated by GARCH(1,1) at every horizon; included as the pre-registered pure-ARCH order variant (protocol §4).