arch.univariate.FIGARCH

class arch.univariate.FIGARCH(p: int = 1, q: int = 1, power: float = 2.0, truncation: int = 1000)[source]

FIGARCH model.

Parameters:
p: int = 1

Order of the symmetric innovation.

q: int = 1

Order of the lagged (transformed) conditional variance.

power: float = 2.0

Power to use with the innovations, abs(e) ** power. Default is 2.0, which produces FIGARCH and related models. Using 1.0 produces FIAVARCH and related models. Other powers can be specified, although these should be strictly positive, and usually larger than 0.25.

truncation: int = 1000

Truncation point to use in ARCH(\(\infty\)) representation. Default is 1000. Must be positive.

Raises:
  • TypeError – If p, q or truncation is not an integer, or power is not a real number.

  • ValueError – If p or q is not 0 or 1, truncation is smaller than 1, or power is not finite and strictly positive.

Notes

In this class of processes, the variance dynamics are

\[h_t = \omega + [1-\beta L - (1-\phi L) (1-L)^d] \epsilon_t^2 + \beta h_{t-1}\]

where L is the lag operator and d is the fractional differencing parameter. The model is estimated using the ARCH(\(\infty\)) representation,

\[h_t = (1-\beta)^{-1} \omega + \sum_{i=1}^\infty \lambda_i \epsilon_{t-i}^2\]

The weights are constructed using

\[\begin{split}\delta_1 = d \\ \lambda_1 = d - \beta + \phi\end{split}\]

and the recursive equations

\[\begin{split}\delta_j = \frac{j - 1 - d}{j} \delta_{j-1} \\ \lambda_j = \beta \lambda_{j-1} + \delta_j - \phi \delta_{j-1}.\end{split}\]

When power is not 2, the ARCH(\(\infty\)) representation is still used where \(\epsilon_t^2\) is replaced by \(|\epsilon_t|^p\) and p is the power.

Examples

>>> from arch.univariate import FIGARCH

Standard FIGARCH

>>> figarch = FIGARCH()

FIARCH

>>> fiarch = FIGARCH(p=0)

FIAVGARCH process

>>> fiavarch = FIGARCH(power=1.0)

Methods

backcast(resids)

Construct values for backcasting to start the recursion.

backcast_transform(backcast)

Transform user-provided backcast values.

bounds(resids)

Return bounds for parameters.

compute_variance(parameters, resids, sigma2, ...)

Compute the variance for the ARCH model.

constraints()

Construct parameter constraints arrays for parameter estimation.

forecast(parameters, resids, backcast, ...)

Forecast volatility from the model.

parameter_names()

Return the names of the model parameters.

simulate(parameters, nobs, rng[, burn, ...])

Simulate data from the model.

starting_values(resids)

Return starting values for the ARCH model.

update(index, parameters, resids, sigma2, ...)

Compute the variance for a single observation.

variance_bounds(resids[, power])

Construct loose bounds for conditional variances.

Properties

name

The name of the volatility process.

num_params

The number of parameters in the model.

start

Index to use to start variance subarray selection.

stop

Index to use to stop variance subarray selection.

truncation

Truncation lag for the ARCH-infinity approximation.

updateable

Flag indicating that the volatility process supports update.

volatility_updater

Get the volatility updater associated with the volatility process.