statsmodels.tsa.stattools.innovations_algo

statsmodels.tsa.stattools.innovations_algo(acov, nobs=None, rtol=None)

Innovations algorithm to convert autocovariances to MA parameters.

Parameters

acov : array_like

Array containing autocovariances including lag 0.

nobs : int, optional

Number of periods to run the algorithm. If not provided, nobs is equal to the length of acovf.

rtol : float, optional

Tolerance used to check for convergence. Default value is 0 which will never prematurely end the algorithm. Checks after 10 iterations and stops if sigma2[i] - sigma2[i - 10] < rtol * sigma2[0]. When the stopping condition is met, the remaining values in theta and sigma2 are forward filled using the value of the final iteration.

Returns

theta : ndarray

Innovation coefficients of MA representation. Array is (nobs, q) where q is the largest index of a non-zero autocovariance. theta corresponds to the first q columns of the coefficient matrix in the common description of the innovation algorithm.

sigma2 : ndarray

The prediction error variance (nobs,).

See also

innovations_filter

Filter a series using the innovations algorithm.

References

*

Brockwell, P.J. and Davis, R.A., 2016. Introduction to time series and forecasting. Springer.

Examples

>>> import statsmodels.api as sm
>>> data = sm.datasets.macrodata.load_pandas()
>>> rgdpg = data.data['realgdp'].pct_change().dropna()
>>> acov = sm.tsa.acovf(rgdpg)
>>> nobs = activity.shape[0]
>>> theta, sigma2  = innovations_algo(acov[:4], nobs=nobs)