ARMAEGARCH#

class cultivars.univariate.conditional_variance.ARMAEGARCH(endog, *, ar_lags=1, ma_lags=1, p=1, o=1, q=1, mean='constant')[source]

Bases: _ShortMemoryVarianceModel[ARMAGARCHResult]

ARMA mean with a log-variance EGARCH process, estimated jointly.

The ARMAGARCH mean over the EGARCH variance. The standardized mean residual \(z_t = \varepsilon_t / \sigma_t\) drives the log variance through its magnitude and its sign, so the mean and variance blocks are coupled more tightly than in the level families: a misspecified mean changes the shocks the variance sees in both size and sign. The result’s unconditional_variance is None for this family.

Variables:
  • _vol – The family name, "EGARCH".

  • _p – Magnitude order.

  • _o – Sign order.

  • _q – Log-variance persistence order.

  • _endog – The validated series.

  • _ar_lags – Conditional-mean AR order.

  • _ma_lags – Conditional-mean MA order.

  • _const – Whether the mean carries an intercept.

Parameters:
  • endog (ArrayLike) – The series.

  • ar_lags (int) – Conditional-mean autoregressive order.

  • ma_lags (int) – Conditional-mean moving-average order.

  • p (int) – Order of the shock-magnitude block.

  • o (int) – Order of the asymmetry block, at least one.

  • q (int) – Order of the variance persistence block.

  • mean (str) – "constant" or "zero".

Raises:
  • SpecificationError – If an order is not a non-negative integer, o is zero, or mean is not one of the two choices.

  • DimensionError – If endog is not one-dimensional or is shorter than the orders require.

  • NumericalError – If endog contains non-finite values.

See also

  • ARMAGARCHResult – what fit() returns.

  • EGARCH – the same variance under a constant or AR mean, with the recursion written out.

  • ARMAGJR – asymmetry in a level recursion.

Example

>>> import numpy as np
>>> rng = np.random.default_rng(0)
>>> res = ARMAEGARCH(rng.standard_normal(500)).fit()
>>> res._comparison_label(), res.unconditional_variance
('ARMA(1, 1)-EGARCH(1, 1, 1)', None)
>>> res.is_stationary, res.is_invertible, res.is_covariance_stationary
(True, True, True)