arma

class quantecon.arma.ARMA(phi, theta=0, sigma=1)[source]

Bases: object

This class represents scalar ARMA(p, q) processes.

If phi and theta are scalars, then the model is understood to be

\[X_t = \phi X_{t-1} + \epsilon_t + \theta \epsilon_{t-1}\]

where \(\epsilon_t\) is a white noise process with standard deviation \(\sigma\). If phi and theta are arrays or sequences, then the interpretation is the ARMA(p, q) model

\[ \begin{align}\begin{aligned}X_t = \phi_1 X_{t-1} + ... + \phi_p X_{t-p} +\\\epsilon_t + \theta_1 \epsilon_{t-1} + ... + \theta_q \epsilon_{t-q}\end{aligned}\end{align} \]

where

  • \(\phi = (\phi_1, \phi_2,..., \phi_p)\)

  • \(\theta = (\theta_1, \theta_2,..., \theta_q)\)

  • \(\sigma\) is a scalar, the standard deviation of the white noise

Parameters:
phiscalar or iterable or array_like(float)

Autocorrelation values for the autocorrelated variable. See above for explanation.

thetascalar or iterable or array_like(float)

Autocorrelation values for the white noise of the model. See above for explanation

sigmascalar(float)

The standard deviation of the white noise

Attributes:
phi, theta, sigmasee Parmeters
ar_polyarray_like(float)

The polynomial form that is needed by scipy.signal to do the processing we desire. Corresponds with the phi values

ma_polyarray_like(float)

The polynomial form that is needed by scipy.signal to do the processing we desire. Corresponds with the theta values

Methods

autocovariance([num_autocov])

Compute the autocovariance function from the ARMA parameters over the integers range(num_autocov) using the spectral density and the inverse Fourier transform.

impulse_response([impulse_length])

Get the impulse response corresponding to our model.

set_params()

Internally, scipy.signal works with systems of the form

simulation([ts_length, random_state])

Compute a simulated sample path assuming Gaussian shocks.

spectral_density([two_pi, res])

Compute the spectral density function.

autocovariance(num_autocov=16)[source]

Compute the autocovariance function from the ARMA parameters over the integers range(num_autocov) using the spectral density and the inverse Fourier transform.

Parameters:
num_autocovscalar(int), optional(default=16)

The number of autocovariances to calculate

impulse_response(impulse_length=30)[source]

Get the impulse response corresponding to our model.

Returns:
psiarray_like(float)

psi[j] is the response at lag j of the impulse response. We take psi[0] as unity.

property phi
set_params()[source]

Internally, scipy.signal works with systems of the form

\[ar_{poly}(L) X_t = ma_{poly}(L) \epsilon_t\]

where L is the lag operator. To match this, we set

\[ \begin{align}\begin{aligned}ar_{poly} = (1, -\phi_1, -\phi_2,..., -\phi_p)\\ma_{poly} = (1, \theta_1, \theta_2,..., \theta_q)\end{aligned}\end{align} \]

In addition, ar_poly must be at least as long as ma_poly. This can be achieved by padding it out with zeros when required.

simulation(ts_length=90, random_state=None)[source]

Compute a simulated sample path assuming Gaussian shocks.

Parameters:
ts_lengthscalar(int), optional(default=90)

Number of periods to simulate for

random_stateint or np.random.RandomState/Generator, optional

Random seed (integer) or np.random.RandomState or Generator instance to set the initial state of the random number generator for reproducibility. If None, a randomly initialized RandomState is used.

Returns:
valsarray_like(float)

A simulation of the model that corresponds to this class

spectral_density(two_pi=True, res=1200)[source]

Compute the spectral density function. The spectral density is the discrete time Fourier transform of the autocovariance function. In particular,

\[f(w) = \sum_k \gamma(k) \exp(-ikw)\]

where gamma is the autocovariance function and the sum is over the set of all integers.

Parameters:
two_piBoolean, optional

Compute the spectral density function over \([0, \pi]\) if two_pi is False and \([0, 2 \pi]\) otherwise. Default value is True

resscalar or array_like(int), optional(default=1200)

If res is a scalar then the spectral density is computed at res frequencies evenly spaced around the unit circle, but if res is an array then the function computes the response at the frequencies given by the array

Returns:
warray_like(float)

The normalized frequencies at which h was computed, in radians/sample

spectarray_like(float)

The frequency response

property theta