statsmodels.sandbox.tsa.fftarma.ArmaFft

class statsmodels.sandbox.tsa.fftarma.ArmaFft(ar, ma, n)[source]

fft tools for arma processes

This class contains several methods that are providing the same or similar returns to try out and test different implementations.

Notes

TODO: check whether we do not want to fix maxlags, and create new instance if maxlag changes. usage for different lengths of timeseries ? or fix frequency and length for fft

check default frequencies w, terminology norw n_or_w

some ffts are currently done without padding with zeros

returns for spectral density methods needs checking, is it always the power spectrum hw*hw.conj()

normalization of the power spectrum, spectral density: not checked yet, for example no variance of underlying process is used

Attributes:
arroots

Roots of autoregressive lag-polynomial

isinvertible

Arma process is invertible if MA roots are outside unit circle.

isstationary

Arma process is stationary if AR roots are outside unit circle.

maroots

Roots of moving average lag-polynomial

Methods

acf([lags])

Theoretical autocorrelation function of an ARMA process.

acf2spdfreq(acovf[, nfreq, w])

not really a method just for comparison, not efficient for large n or long acf

acovf([nobs])

Theoretical autocovariances of stationary ARMA processes

arma2ar([lags])

A finite-lag AR approximation of an ARMA process.

arma2ma([lags])

A finite-lag approximate MA representation of an ARMA process.

fftar([n])

Fourier transform of AR polynomial, zero-padded at end to n

fftarma([n])

Fourier transform of ARMA polynomial, zero-padded at end to n

fftma(n)

Fourier transform of MA polynomial, zero-padded at end to n

filter(x)

filter a timeseries with the ARMA filter

filter2(x[, pad])

filter a time series using fftconvolve3 with ARMA filter

from_coeffs([arcoefs, macoefs, nobs])

Create ArmaProcess from an ARMA representation.

from_estimation(model_results[, nobs])

Create an ArmaProcess from the results of an ARIMA estimation.

from_roots([maroots, arroots, nobs])

Create ArmaProcess from AR and MA polynomial roots.

generate_sample([nsample, scale, distrvs, ...])

Simulate data from an ARMA.

impulse_response([leads])

Compute the impulse response function (MA representation) for ARMA process.

invertroots([retnew])

Make MA polynomial invertible by inverting roots inside unit circle.

invpowerspd(n)

autocovariance from spectral density

pacf([lags])

Theoretical partial autocorrelation function of an ARMA process.

pad(maxlag)

construct AR and MA polynomials that are zero-padded to a common length

padarr(arr, maxlag[, atend])

pad 1d array with zeros at end to have length maxlag function that is a method, no self used

periodogram([nobs])

Periodogram for ARMA process given by lag-polynomials ar and ma.

plot4([fig, nobs, nacf, nfreq])

Plot results

spd(npos)

raw spectral density, returns Fourier transform

spddirect(n)

power spectral density using padding to length n done by fft

spdmapoly(w[, twosided])

ma only, need division for ar, use LagPolynomial

spdpoly(w[, nma])

spectral density from MA polynomial representation for ARMA process

spdroots(w)

spectral density for frequency using polynomial roots

spdshift(n)

power spectral density using fftshift

Properties

arroots

Roots of autoregressive lag-polynomial

isinvertible

Arma process is invertible if MA roots are outside unit circle.

isstationary

Arma process is stationary if AR roots are outside unit circle.

maroots

Roots of moving average lag-polynomial