SPB Git

Repository Public Research preview

arch5.md 4.5 KB 40 lines markdown

1# Model card — `arch5` (ARCH(5))23## 1. Identity4- **model_id:** `arch5` · **family:** classical · **tier:** A · **status:** implemented · **impl:** arch 8.0.0 (`ARCH(p=5)`)5- **Label:** ARCH(5) · **distributions:** normal, t, ged, skewt6- **Seminal citation:** `engle1982autoregressive`7- **Other references:** `bollerslev1986generalized` (GARCH as parsimonious ARCH(∞)); `bollerslev1992arch`, `engle2001garch` (surveys); innovation laws `bollerslev1987conditionally` (t), `nelson1991conditional` (GED), `hansen1994autoregressive` (skew-t).89## 2. Definition10$$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 .$$11Pre-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 (η, λ).1213## 3. Parameter space and admissibility14- Parameters: `mu, omega, alpha[1..5]` (+ `nu` / `eta, lambda`).15- 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].16- 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).1718## 4. Nesting and relations19Nests `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.2021## 5. Estimation22arch `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.2324## 6. Forecasting25arch `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`.2627## 7. Implementation28- `src/wp46/models/arch_models.py` (`SPECS["arch5"]`), arch 8.0.0 (`sheppard2025arch`).29- Cross-check: not in the rugarch fixture (`results/metrics/rugarch_crosscheck.json` covers garch11, gjr11, egarch11, aparch11, figarch11, igarch11, cgarch11, nagarch11, garch11-skewt); the recursion is arch's `garch_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`).30- Tests: none dedicated; distributions checked in `tests/unit/test_distributions.py::test_loglik_matches_arch`.3132## 8. Known limitations / failure modes33Short 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).3435## 9. Computational footprint36Analytic 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`.3738## 10. Literature expectations39`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).40
Files main
Menu

Theme