# [SciPy-User] autocorrelation

Skipper Seabold jsseabold@gmail....
Tue Jun 19 11:18:34 CDT 2012

```On Tue, Jun 19, 2012 at 12:03 PM, Jaidev Deshpande <
deshpande.jaidev@gmail.com> wrote:

> On Tue, Jun 19, 2012 at 9:21 PM, Bala subramanian
> <bala.biophysics@gmail.com> wrote:
> > Friends,
> > I need to calculate the autocorrelation of my data. How can i do the
> same in
> > scipy.
> >
> > I want to make a plot similar to that shown in the following link.
> > autocorrelation of the data for a user input time lag.
> >
> > http://www.itl.nist.gov/div898/handbook/eda/section3/autocopl.htm
> >
> > --
> > C. Balasubramanian
> >
> >
> > _______________________________________________
> > SciPy-User mailing list
> > SciPy-User@scipy.org
> > http://mail.scipy.org/mailman/listinfo/scipy-user
> >
>
> Hi,
>
> You can use the numpy.corrcoef function. Please refer to this
>
> http://docs.scipy.org/doc/numpy/reference/generated/numpy.corrcoef.html#numpy.corrcoef
>
> The plotting can be easily done with matplotlib. If you want the
> figure exactly as in the link you provided, you can use the xlabel and
> ylabel functions for labeling the axes, and the axis command to set
> the range of the X and Y axes.
>

You could also use statsmodels. I don't think we have a convenience
function yet for plotting ACF (pull requests welcome), but you can do
something like (using the FLICKER.DAT from NIST in that example)

import statsmodels.api as sm
import matplotlib.pyplot as plt

plt.interactive(False)
fig = plt.figure()

acf = sm.tsa.acf(y, nlags=250)

ax.bar(np.arange(251), acf)
plt.show()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/scipy-user/attachments/20120619/db129a9a/attachment.html
```