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.
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