FIGARCH#
- class cultivars.univariate.conditional_variance.FIGARCH(endog, *, mean='constant', truncation=_DEFAULT_TRUNCATION)[source]#
FIGARCH(1, d, 1): long-memory volatility through a fractional filter.
The variance
\[\sigma_t^2 = \frac{\omega}{1 - \beta} + \Bigl[1 - \frac{(1 - \phi L)(1 - L)^d}{1 - \beta L}\Bigr]\varepsilon_t^2,\]under a constant or zero mean. The order is fixed, so the only structural choice beyond the mean is how far the infinite-order representation is truncated. Weights beyond the available history are applied to the pre-sample variance rather than dropped, so the truncation tail contributes a constant instead of vanishing silently; at the default of 1000 lags the likelihood is insensitive to the choice for samples of a few hundred observations. Draws whose retained weights turn negative are rejected, which is the positivity condition on the ARCH(\(\infty\)) representation. A mean with lags is
ARMAFIGARCH; this front does not accept one.- Variables:
_truncation – The retained number of weights.
_endog – The validated series.
_ar_lags – Conditional-mean AR order, always zero here.
_ma_lags – Conditional-mean MA order, always zero here.
_const – Whether the mean carries an intercept.
- Parameters:
- Raises:
SpecificationError – If
truncationis not a positive integer ormeanis not one of the two choices.DimensionError – If
endogis not one-dimensional or has fewer than five observations.NumericalError – If
endogcontains non-finite values.
See also
FIGARCHResult– whatfit()returns.ARMAFIGARCH– the same variance under an ARMA mean.GARCH– the geometric-decay alternative, whose persistence pinned near one is the usual sign this model is wanted.ARFIMA– long memory in the level rather than the variance.
References
Baillie, R. T., Bollerslev, T., & Mikkelsen, H. O. (1996). Fractionally integrated generalized autoregressive conditional heteroskedasticity. Journal of Econometrics, 74(1), 3-30.
Example
>>> import numpy as np >>> rng = np.random.default_rng(0) >>> y = rng.standard_normal(600) >>> res = FIGARCH(y, truncation=200).fit() >>> res.truncation, list(res.params) (200, ['const', 'omega', 'phi', 'd', 'beta']) >>> bool(abs(res.llf - FIGARCH(y).fit().llf) < 2.0) True
Attributes#
The conditional-mean autoregressive order. |
|
The validated endogenous series. |
|
Whether a mean intercept is estimated. |
|
The conditional-mean moving-average order. |
|
The conditional-mean order |
|
The infinite-order truncation lag. |
Methods#
|
Estimate mean and variance jointly by Gaussian maximum likelihood. |