Model card — hygarch11 (HYGARCH(1,d,1), hyperbolic GARCH) — post-registration extension
1. Identity
- model_id:
hygarch11· family: fractional · tier: A · status: extension (E-01, added 2026-11-09 after the protocol freeze; scored with the frozen protocol, reported separately as exploratory) · impl: custom (src/wp46/models/extensions.py::HYGARCH11) - Label: HYGARCH(1,d,1) · distributions: normal, t (registry
dists; the class also accepts ged/skewt but those pairs are not scored) - Seminal citation:
davidson2004moment - Other references:
baillie1996fractionally(FIGARCH, the amp = 1 case, scored asfigarch11),conrad2006inequality(positivity of FIGARCH ARCH(∞) weights),ding1996modeling(long memory in volatility),sheppard2025arch(the FIGARCH truncation convention reproduced here). Conrad's HYGARCH positivity conditions are not in the .bib (_missing_references.md). This card replaces the former unsupported stub.
2. Definition (as coded)
$$r_t = \mu + \varepsilon_t,\quad \varepsilon_t = \sigma_t z_t,\qquad \sigma_t^2 = \frac{\omega}{1-\beta} + \sum_{k=1}^{1000}\lambda_k,\varepsilon_{t-k}^2,\qquad
\lambda(L) = 1 - (1-\beta L)^{-1}(1-\phi L)\big[1 + \mathrm{amp},\big((1-L)^d - 1\big)\big],$$
the ARCH(∞) form of davidson2004moment truncated at 1,000 lags (arch's FIGARCH convention). figarch_weights builds the weights by polynomial arithmetic: $\pi_0 = 1$, $\pi_k = \pi_{k-1}(k-1-d)/k$ (coefficients of $(1-L)^d$); $c_0 = 1$, $c_k = \mathrm{amp},\pi_k$ (k ≥ 1); $a(L) = (1-\phi L),c(L)$; $b_k = a_k + \beta b_{k-1}$ (division by $1-\beta L$); $\lambda_k = -b_k$, k = 1..1000 (so $\lambda_1 = \mathrm{amp},d + \phi - \beta$, and for amp = 1 the weights coincide with arch's $\lambda_j = \beta\lambda_{j-1} + \delta_j - \phi\delta_{j-1}$). Recursion rec_archinf: pre-sample $\varepsilon_{t-k}^2$ (t − k < 0) replaced by the backcast $s_0$ for all 1,000 lags, as in arch's figarch_recursion. Innovations: standardised normal or Student-t.
3. Parameter space and admissibility
- Parameters:
mu, omega, d, phi, beta, amp(+nufor t). - Reparameterisation: $\omega = e^{\theta_0}$; $d = \sigma(\theta_1) \in (0,1)$; $\phi = \sigma(\theta_2) \in (0,1)$; $\beta = \sigma(\theta_3) \in (0,1)$; $\mathrm{amp} = e^{\theta_4} > 0$. arch's sufficient constraints ($\phi \le (1-d)/2$, $\beta \le d + \phi$) are not imposed.
- Admissibility (
admissible, and inside the likelihood): $\omega > 0$ and all 1,000 truncated weights $\lambda_k \ge -10^{-10}$, checked numerically; a proposal with a negative weight raisesFloatingPointErrorinsigma2, which_negllturns into the penalty value 1e10 (a hard, non-differentiable wall for L-BFGS-B — the Nelder–Mead fallback handles stalls). Davidson's covariance-stationarity condition amp < 1 is not part of the flag: amp > 1 (explosive hyperbolic memory) is admissible as long as the weights are non-negative.
4. Nesting and relations
- amp = 1: FIGARCH(1,d,1) exactly (same truncation; the identity is tested, §7);
figarch11(arch) is the registry twin. - amp → 0: $\lambda(L) = (\phi-\beta)L/(1-\beta L)$, i.e. GARCH(1,1) with $\alpha = \phi - \beta$ (reached only in the limit since amp = e^θ).
- d → 0: GARCH(1,1) for any amp (same reduction).
- amp < 1: covariance-stationary hyperbolic memory (finite unconditional variance $\frac{\omega}{1-\beta}\big/\big(1 - \sum_k\lambda_k\big)$ in the truncated representation); amp > 1: explosive.
fiaparch11shares the amp = 1 weights with a power/asymmetry transform;fiegarch11is the log-variance analogue.
5. Estimation
Shared custom MLE (CustomModel.fit): L-BFGS-B (maxiter 2000, ftol 1e-10, gtol 1e-6) from up to three starts (ω, d, φ, β, amp) ∈ {(0.1v, 0.4, 0.2, 0.5, 1.0), (0.05v, 0.6, 0.1, 0.4, 0.9), (0.2v, 0.3, 0.3, 0.6, 1.1)}, v = sample variance of the demeaned window; μ start = sample mean; ν start 6; stop after the second start if converged; Nelder–Mead polish (maxiter 4000) + final L-BFGS-B if not converged or stalled; A-05 floor vs GARCH(1,1) with the same law (−50 units → two perturbed restarts → degenerate flag). Backcast $s_0$ = exponentially weighted mean (75 lags, 0.94) of the first squared demeaned returns. Each likelihood evaluation recomputes the 1,000 weights (O(1000)) and the O(T × 1000) convolution. Point estimates only.
6. Forecasting
HYGARCH11.step_forecast (method analytic): the ARCH(∞) recursion iterated forward with future squared innovations replaced by their forecasts, exactly as arch's FIGARCH._analytic_forecast:
$$\hat\sigma^2_{t+k|t} = \frac{\omega}{1-\beta} + \sum_{i=1}^{1000}\lambda_i,\widetilde{\varepsilon^2}_{t+k-i},\qquad \widetilde{\varepsilon^2}s = \varepsilon_s^2\ (s \le t),\quad = \hat\sigma^2{s|t}\ (s > t),$$
floor 1e-12; exact under $E z^2 = 1$. Lags older than the window are padded with $\sigma_0^2$ (the first in-sample variance; this only matters for windows shorter than 1,000 days, where it differs from the backcast used in-sample). Cumulative h-day variance = sum of the first h steps.
7. Implementation and verification
src/wp46/models/extensions.py::HYGARCH11,figarch_weights,frac_diff_coefs, numbarec_archinf; dispatched throughEXTENSIONS.- Tests (
tests/unit/test_extensions.py):test_frac_diff_coefficients(binomial coefficients of $(1-L)^{0.4}$; $\lambda_k = -\pi_k$ when φ = β = 0);test_hygarch_amp1_matches_arch_figarch_likelihood— the only external identity in the extension set: with amp = 1 and arch's FIGARCH-t optimum (same backcast), our log-likelihood equals arch's within 5.0 units, and the HYGARCH fit attains at least arch's FIGARCH log-likelihood − 1.0 (nesting);test_no_lookahead_extensions(5-step forecast unchanged when post-window returns are scaled ×5). - No external cross-check of amp ≠ 1 (HYGARCH is not in arch 8.0.0 or rugarch 1.5-6), no simulation-recovery test; the ±5.0 tolerance of the identity test is loose for a claimed "exact re-implementation" (
_discrepancies.md, E-01). CLAUDE.md rule 6 is partially met (identity at the FIGARCH point only) — henceextensionstatus. The arch-vs-rugarch FIGARCH gap of −1.47 (D-14) carries over to this implementation.
8. Known limitations / failure modes
Post-registration, exploratory. Identification of amp: amp and the truncation interact — the discarded tail mass $\sum_{k>1000}\lambda_k$ (of order $1000^{-d}$) is observationally similar to amp < 1, and amp, d and $\omega/(1-\beta)$ trade off within a 1,000-day window (every in-sample variance already uses the backcast for its oldest lags); expect amp estimates near 1 with flat likelihoods. The positivity wall makes the likelihood discontinuous at the boundary; d ∈ (0,1) and φ, β ∈ (0,1) exclude the GARCH/IGARCH limits; no covariance-stationarity flag (amp > 1 fits are ok); long-horizon forecasts grow slowly without bound when amp ≥ 1; ω is small and poorly identified (as for figarch11).
9. Computational footprint
O(T × 1000) per likelihood evaluation plus the O(1000) weight construction, over six to seven parameters: qualitatively 10–30× slower than GARCH(1,1) (same order as arch's FIGARCH, which is the heaviest analytic Tier A model); analytic forecasts O(22 × 1000). Not timed in the pilot.
10. Literature expectations
davidson2004moment introduced HYGARCH to reconcile hyperbolic memory with finite variance (Asian-crisis exchange rates); baillie1996fractionally/ding1996modeling document hyperbolic autocorrelation decay; lamoureux1990persistence/hillebrand2005neglecting warn that structural breaks mimic long memory; hansen2005forecast include FIGARCH among models that do not beat GARCH(1,1) at h = 1. Under H4 the expectation is no gain at h = 1 and, at most, a small gain at h = 22 that is unlikely to exceed figarch11's; under H5 the model should show the highest failure/inadmissibility rate of the fractional block.