Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
tsa.stattools.acf confint needs checking and tests #46
Original Launchpad bug 668759: https://bugs.launchpad.net/statsmodels/+bug/668759
the confint example in the file for tsa.stattools.acf didn't work, shape mismatch exception
I fixed the example how it looked right to me, but this needs verification, and it looks like there are no tests for it. Currently my branch only.
I didn't see that the standard errors/variance themselves are returned anywhere.
Maybe it would be better now to turn acf with statistics into a class, with lazily evaluated (cached attributes) instead of many options for various returns.
This is an old issue, but I was just looking again at tsa.stattools.acf. The confidence intervals look good to me, but there is not test coverage. I don't know where we can get the values from though.
One question is, do we want to center the confidence intervals about zero? Many programs do this, so anything outside of it is different from zero, but we center ours around the estimates, which is fine but looks a little bad. Compare these
from statsmodels.datasets.macrodata import load_pandas from statsmodels.tsa.base.datetools import dates_from_range import matplotlib.pyplot as plt import numpy as np import statsmodels.api as sm plt.interactive(False) cpi = load_pandas().data["cpi"] dates = dates_from_range("1959q1", "2009q3") cpi.index = dates log_cpi = np.log(cpi) acf, confint_acf = sm.tsa.acf(log_cpi.diff().values[1:], confint=95) # center the confidence intervals about zero #confint_acf -= confint_acf.mean(1)[:,None] fig = plt.figure() ax = fig.add_subplot(111) ax.set_title("Autocorrelation") ax.plot(range(41), acf, 'bo', markersize=5) ax.vlines(range(41), 0, acf) ax.fill_between(range(41), confint_acf[:,0], confint_acf[:,1], alpha=.25) fig.tight_layout()