Repository Public Research preview
1# Model card — `figarch11` (FIGARCH(1,d,1))23## 1. Identity4- **model_id:** `figarch11` · **family:** fractional · **tier:** A · **status:** implemented · **impl:** arch 8.0.0 (`FIGARCH(p=1, q=1, truncation=1000)`)5- **Label:** FIGARCH(1,d,1) · **distributions:** normal, t, ged, skewt · registry note: "arch truncates the ARCH(∞) representation at 1000 lags"6- **Seminal citation:** `baillie1996fractionally`7- **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).89## 2. Definition (arch parameterisation)10Model: $[1 - \beta L]\,\sigma_t^2 = \omega + [1 - \beta L - (1 - \phi L)(1-L)^d]\,\varepsilon_t^2$, estimated through the truncated ARCH(∞) representation11$$\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} .$$12Lags 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.1314## 3. Parameter space and admissibility15- Parameters: `mu, omega, phi, d, beta` (+ distribution).16- 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).17- 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.1819## 4. Nesting and relations20d = 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.2122## 5. Estimation23arch `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.2425## 6. Forecasting26arch `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`.2728## 7. Implementation29- `src/wp46/models/arch_models.py` (`SPECS["figarch11"]`), arch 8.0.0 (`sheppard2025arch`).30- 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.31- Tests: `tests/replication/test_rugarch.py` (fit recorded, no assertion on FIGARCH). No simulation-recovery test.3233## 8. Known limitations / failure modes34ω 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.3536## 9. Computational footprint37Analytic but O(T × 1000) per likelihood evaluation (the heaviest analytic model of Tier A); forecasts are O(22 × 1000). Not in the pilot.3839## 10. Literature expectations40`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.41