SPB Git

spb/wp46_uqo

Public
5.0 KB

# Model card — figarch11 (FIGARCH(1,d,1))

# 1. Identity

  • model_id: figarch11 · family: fractional · tier: A · status: implemented · impl: arch 8.0.0 (FIGARCH(p=1, q=1, truncation=1000))
  • Label: FIGARCH(1,d,1) · distributions: normal, t, ged, skewt · registry note: "arch truncates the ARCH(∞) representation at 1000 lags"
  • Seminal citation: baillie1996fractionally
  • Other references: conrad2006inequality (necessary and sufficient positivity), ding1996modeling (long memory in volatility), bollerslev1996modeling (FIEGARCH), davidson2004moment (HYGARCH); chung1999estimating is unverified and not in the .bib (literature matrix).

# 2. Definition (arch parameterisation)

Model: $[1 - \beta L],\sigma_t^2 = \omega + [1 - \beta L - (1 - \phi L)(1-L)^d],\varepsilon_t^2$, estimated through the truncated ARCH(∞) representation $$\sigma_t^2 = \frac{\omega}{1-\beta} + \sum_{i=1}^{1000}\lambda_i,\varepsilon_{t-i}^2,\qquad \lambda_1 = \phi - \beta + d,\ \ \delta_1 = d,\ \ \delta_j = \frac{j-1-d}{j},\delta_{j-1},\ \ \lambda_j = \beta\lambda_{j-1} + \delta_j - \phi,\delta_{j-1} .$$ Lags beyond the available sample use the backcast (figarch_recursion: $\sigma_t^2 = \tilde\omega + (\sum_{i > t}\lambda_i),\text{backcast} + \sum_{i \le \min(t,1000)}\lambda_i\varepsilon_{t-i}^2$). Innovations: normal, t, GED, Hansen skew-t.

# 3. Parameter space and admissibility

  • Parameters: mu, omega, phi, d, beta (+ distribution).
  • arch bounds: $\omega \in [0, 10v]$, $\phi \in [0, 0.5]$, $d \in [0, 1-\epsilon]$, $\beta \in [0, 1-\epsilon]$; linear constraints $\omega > 0$, $0 \le d \le 1$, $0 \le \phi \le (1-d)/2$, $0 \le \beta \le d + \phi$ (sufficient positivity conditions of the (1,d,1) case as coded in arch; the necessary and sufficient set of conrad2006inequality is larger).
  • Admissibility flag (ArchModel.fit): $0 \le d \le 1$. FIGARCH is strictly but not covariance stationary for d > 0 (infinite unconditional variance), so no $\alpha+\beta<1$-type flag applies.

# 4. Nesting and relations

d = 0 gives GARCH(1,1) with $\alpha = \phi - \beta$ (geometric ARCH(∞) weights $\alpha\beta^{j-1}$), and d = 1 the IGARCH-type unit root; igarch11 and garch11 are the end points. rm2006 and HAR are non-estimated / regression analogues of hyperbolic memory. FIEGARCH/FIAPARCH/HYGARCH (unsupported) are its extensions.

# 5. Estimation

arch ConstantMean + FIGARCH(1,1) + distribution; SLSQP (maxiter 1000) with the bounds/constraints of §3; starting values from arch's grid d ∈ {0.2, 0.5, 0.7} × φ-ratio ∈ {0.2, 0.5, 0.8} × β-ratio ∈ {0.1, 0.5, 0.9}, $\omega = (1-\beta),\overline{\varepsilon^2},(1 - \sum_i\lambda_i)$, best Gaussian log-likelihood; backcast = exponentially weighted mean of the first 75 squared residuals; ≤ 2 restarts (ArchModel.fit). Point estimates only. Each likelihood evaluation convolves 1,000 weights over the 1,000-day window.

# 6. Forecasting

arch FIGARCH._analytic_forecast: the ARCH(∞) recursion is iterated forward with future $\varepsilon^2$ replaced by their forecasts, $\hat\sigma^2_{t+k|t} = \tilde\omega + \sum_{i=1}^{1000}\lambda_i,\widetilde{\varepsilon^2}_{t+k-i}$ ($\widetilde{\varepsilon^2}s = \varepsilon_s^2$ for $s \le t$, $= \hat\sigma^2{s|t}$ for $s > t$; pre-sample lags = backcast). Exact under $E z^2 = 1$. Cumulative = sum over k ≤ h. Method: analytic.

# 7. Implementation

  • src/wp46/models/arch_models.py (SPECS["figarch11"]), arch 8.0.0 (sheppard2025arch).
  • Cross-check (results/metrics/rugarch_crosscheck.json, rugarch fiGARCH, t): −3383.4506 (ours) vs −3381.9798 (rugarch), difference −1.4708 (ours lower) — the only cross-check outside ±0.3; attributed to different truncation / constraint handling between arch and rugarch (D-14, progress.md open issue). Estimates: d = 0.546, φ = 0.227, β = 0.693, ν = 6.45 (arch). Reported as an implementation caveat; not resolved.
  • Tests: tests/replication/test_rugarch.py (fit recorded, no assertion on FIGARCH). No simulation-recovery test.

# 8. Known limitations / failure modes

ω is small and poorly identified (literature matrix); d near 0 or 1 hits the bounds; the sufficient constraints exclude admissible parameter sets; the 1,000-lag truncation inside a 1,000-day window means every in-sample variance uses the backcast for the oldest lags; the 1.47 log-likelihood discrepancy with rugarch is unexplained; infinite unconditional variance makes long-horizon forecasts grow slowly without bound.

# 9. Computational footprint

Analytic but O(T × 1000) per likelihood evaluation (the heaviest analytic model of Tier A); forecasts are O(22 × 1000). Not in the pilot.

# 10. Literature expectations

baillie1996fractionally and ding1996modeling document hyperbolic decay in volatility autocorrelations; hansen2005forecast include FIGARCH among models that do not beat GARCH(1,1) at the 1-day horizon; lamoureux1990persistence/hillebrand2005neglecting warn that breaks mimic long memory. Pre-registered H4 (persistence structure) predicts gains, if any, at h = 22 rather than h = 1.

Files · main
Menu

Theme