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 don’t 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
Methods
| acf([nobs]) | theoretical autocorrelation function of an ARMA process |
| acf2spdfreq(acovf[, nfreq, w]) | not really a method |
| acovf([nobs]) | theoretical autocovariance function of ARMA process |
| arma2ar([nobs]) | |
| arma2ma([nobs]) | |
| 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 instance from coefficients of the lag-polynomials |
| from_estimation(model_results[, nobs]) | Create ArmaProcess instance from ARMA estimation results |
| generate_sample([nsample, scale, distrvs, ...]) | generate ARMA samples |
| impulse_response([nobs]) | get 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([nobs]) | 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 |
| periodogram([nobs]) | periodogram for ARMA process given by lag-polynomials ar and ma |
| plot4([fig, nobs, nacf, nfreq]) | |
| 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 |
| spdroots_(arroots, maroots, w) | spectral density for frequency using polynomial roots |
| spdshift(n) | power spectral density using fftshift |
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 |