ARMAFIGARCHResult#
- class cultivars.univariate.conditional_variance.ARMAFIGARCHResult(*, endog, fittedvalues, resid, llf, nobs, n_params, mean, const, omega, conditional_variance, truncation, phi, d, beta, mean_order, ar_params, ma_params)[source]#
A fractionally integrated variance model under an ARMA conditional mean.
The mean is
\[y_t = c + \sum_{i=1}^{p} \phi_i\, y_{t-i} + \varepsilon_t + \sum_{j=1}^{q} \theta_j\, \varepsilon_{t-j}, \qquad \varepsilon_t = \sigma_t z_t,\]with \(\sigma_t^2\) the FIGARCH(1, d, 1) recursion of
FIGARCHResult, estimated jointly. Two long-memory-adjacent objects live in one model here and they are not the same object. The mean has an ARMA structure whose shocks decay geometrically; the variance is fractionally integrated and its shocks decay hyperbolically.is_stationaryspeaks only to the first,is_covariance_stationaryonly to the second, and the latter isFalseby construction for anyd > 0.constis the recursion intercept \(c\), not the unconditional mean.Everything on the variance side –
persistence,half_life,has_long_memory, the refusal tosimulate– is inherited unchanged fromFIGARCHResult; what is added is the mean block and its stationarity and invertibility verdicts, whose meaning depends on how the mean was searched (seeis_structurally_constrained).- Variables:
mean_order – The conditional-mean order
(ar_lags, ma_lags).ar_params – Autoregressive coefficients of the mean; empty when
ar_lags == 0.ma_params – Moving-average coefficients of
1 + theta_1 L + ...; empty whenma_lags == 0.
Note
fittedvalues,residandconditional_varianceare aligned with the lastnobs = len(endog) - max(ar_lags, ma_lags)observations.stabilityandinvertibilityhold the companion eigenvalues (the inverse roots), so theirmax_modulusis below one for a stationary or invertible block. A fit withmean_order == (0, 0)is aFIGARCHunder another label.See also
ARMAFIGARCH– the specification that produces this.FIGARCHResult– the same variance under a constant or zero mean, and the source of every variance property here.ARMAGARCHResult– the same mean over a geometric-decay variance, where a half-life exists.
Example
An ARMA(1, 1) mean over a persistent variance, with the two verdicts kept apart:
>>> rng = np.random.default_rng(0) >>> n = 1500 >>> h, e, y = np.ones(n), np.zeros(n), np.zeros(n) >>> for t in range(1, n): ... h[t] = 0.05 + 0.1 * e[t - 1] ** 2 + 0.85 * h[t - 1] ... e[t] = np.sqrt(h[t]) * rng.standard_normal() ... y[t] = 0.2 + 0.5 * y[t - 1] + e[t] + 0.3 * e[t - 1] >>> res = ARMAFIGARCH(y, ar_lags=1, ma_lags=1).fit() >>> list(res.params), res.nobs (['const', 'ar.L1', 'ma.L1', 'omega', 'phi', 'd', 'beta'], 1499) >>> bool(abs(res.ar_params[0] - 0.5) < 0.1), bool(abs(res.ma_params[0] - 0.3) < 0.1) (True, True) >>> res.is_stationary, res.is_covariance_stationary, res.half_life (True, False, inf)
Attributes#
|
|
|
|
|
|
Denominator weight, in \((0, 1)\). |
|
Conditional standard deviation, |
|
Fractional integration order, in \((0, 1)\). |
|
Periods for a variance shock to decay by half. |
|
Whether |
|
AIC, BIC, and HQIC derived from the likelihood and parameter count. |
|
Full eigenvalue verdict for the moving-average polynomial. |
|
Always |
|
Whether every companion eigenvalue of the MA block is inside the unit circle. |
|
Whether every companion eigenvalue lies inside the unit circle. |
|
Whether the mean was searched inside the stationary-invertible region. |
|
Estimated parameters keyed by display name, in table order. |
|
Unity, by construction. |
|
Short-memory numerator weight, in \((0, 1)\). |
|
Full eigenvalue verdict for the autoregressive polynomial. |
|
Mean residuals scaled by the fitted conditional volatility. |
|
Number of ARCH(\(\infty\)) weights retained before the backcast tail. |
Methods#
|
Rank this result against others by an information criterion. |
|
Test this result as the restricted model against a nesting one. |
|
Refused: a long-memory variance has no finite-state recursion to start from. |
|
The estimation summary, renderable as text, HTML, or a dataframe. |
|
The aligned per-observation outputs as plain numpy arrays. |
|
The aligned per-observation outputs as a |
The aligned per-observation outputs as a |