# Model card — `gas_t11` (GAS-t(1,1) / Beta-t-GARCH, score-driven non-GARCH comparator) ## 1. Identity - **model_id:** `gas_t11` · **family:** score-driven (non-GARCH) · **tier:** A · **status:** implemented · **impl:** custom (`src/wp46/models/custom.py::GAST11`) - **Label:** GAS-t(1,1) / Beta-t-GARCH (non-GARCH comparator) · **distributions:** t only - **Seminal citation:** `creal2013generalized` - **Other references:** `harvey2013dynamic`, `harvey2008beta` (Beta-t-GARCH / DCS), `harvey2014egarch` (Beta-t-EGARCH, not implemented), `blasques2015information` (information-theoretic optimality of score updates), `ardia2019generalized` (GAS R package, not run). ## 2. Definition $$r_t = \mu + \varepsilon_t,\ \varepsilon_t = \sqrt{f_t}\,z_t,\ z_t \sim t_\nu\ \text{(unit variance)},\qquad f_t = \omega + \alpha\,s_{t-1} + \beta\,f_{t-1},$$ $$s_t = \frac{\nu+3}{\nu}\left[\frac{(\nu+1)\,f_t\,\varepsilon_t^2}{(\nu-2)\,f_t + \varepsilon_t^2} - f_t\right]$$ — the score of the Student-t log-density with respect to the variance $f_t$ scaled by the **inverse Fisher information** ($\mathcal I_t^{-1} = 2f_t^2(\nu+3)/\nu$), i.e. Creal–Koopman–Lucas GAS(1,1) in the variance parameterisation; the update is bounded in $\varepsilon_t^2$ (outlier-robust). `rec_gas_t`: $f_0 = s_0$ (backcast), floor $f_t \ge 10^{-12}$; if ν > 10⁶ the score degenerates to $\varepsilon_t^2 - f_t$ (GARCH). Innovation law: standardised Student-t only (the model is defined by its density). ## 3. Parameter space and admissibility - Parameters: `mu, omega, alpha, beta, nu`. - Reparameterisation: $\omega = e^{\theta_0}$, $\alpha = e^{\theta_1}$ (any positive value), $\beta = \sigma(\theta_2) \in (0,1)$, $\nu = 2.05 + e^{\theta_3}$. - Admissibility flag: $\omega > 0$, $\alpha \ge 0$, $0 \le \beta < 1$ (stationarity of the linear recursion; $E[s_t] = 0$ under correct specification). ## 4. Nesting and relations Not a GARCH model (updates by the scaled score). As $\nu \to \infty$, $s_t = \varepsilon_t^2 - f_t$ and $f_t = \omega + \alpha\varepsilon_{t-1}^2 + (\beta - \alpha) f_{t-1}$: GARCH(1,1) with $\alpha_G = \alpha$, $\beta_G = \beta - \alpha$. Equivalent to Harvey's Beta-t-GARCH up to parameterisation (variance level, not log). The Beta-t-EGARCH (log-variance, leverage) is not in the registry. ## 5. Estimation Custom MLE (`GAST11._negll`): $-\sum_t[\log f_{t_\nu}(z_t) - \tfrac12\log f_t]$; L-BFGS-B on θ (maxiter 2000) from three starts (ω, α, β) ∈ {(0.03v, 0.05, 0.97), (0.01v, 0.08, 0.99), (0.1v, 0.03, 0.9)}, ν start 6, Nelder–Mead polish on failure; μ start = sample mean; backcast $f_0$ arch-style. Point estimates only. (Note: `GAST11.sigma2` uses an attribute `_nu` set only by `filter`; `fit`/`forecast` bypass it through their own code paths.) ## 6. Forecasting `GAST11.forecast`: $\hat f_{t+1|t} = \omega + \alpha s_t + \beta f_t$ with $s_t$ computed from the last observation; $\hat f_{t+k|t} = \omega + \beta\,\hat f_{t+k-1|t}$ for $k \ge 2$ (uses $E[s_{t+j}\mid\mathcal F_t] = 0$; exact if the t-density is correctly specified). Cumulative = sum over k ≤ h. Method: `analytic`. ## 7. Implementation - `src/wp46/models/custom.py::GAST11` (numba `rec_gas_t`). - Cross-check: **none against a library** (GAS R package not run; no arch/rugarch counterpart; not in `results/metrics/rugarch_crosscheck.json`). - Tests: `tests/unit/test_custom_models.py::test_nesting_and_admissibility[GAST11]` (converged, admissible, positive finite 22-step forecasts; excluded from the GARCH-nesting log-likelihood assertion). No simulation-recovery test. ## 8. Known limitations / failure modes β near 1 (near-integrated score recursion) and small ν give very different dynamics from GARCH (bounded news impact); when the data are close to Gaussian the model is only identified through the GARCH limit and ν runs to large values; the zero-mean score assumption makes multi-step forecasts revert at rate β (faster than GARCH's α+β for equal fits); only the t law is available (no skewness). ## 9. Computational footprint Analytic; 5 parameters; one numba recursion with a rational function per step. Not in the pilot; cost order of `garch11` custom. ## 10. Literature expectations `creal2013generalized` and `harvey2013dynamic` motivate the score update by robustness to outliers; `blasques2015information` show information-theoretic optimality of score updates. The literature matrix labels it "non-GARCH adjacent". Expectation: close to GARCH(1,1)-t at h = 1 with better behaviour after extreme returns (COVID/tariff episodes, H6); no claim of superiority at h = 22.