python-什么产生与autocorrelation_plot()相同的图?

时间:2018-08-01 10:27:09

标签: python pandas statsmodels

我需要来自autocorrelation_plot()的自相关系数的值。问题是无法访问此函数的输出,因此我需要另一个函数来获取此类值。这就是为什么我使用acf()中的statsmodels的原因,但它没有得到与autocorrelation_plot()相同的图。这是我的代码:

from statsmodels.tsa.stattools import acf
from pandas.plotting import autocorrelation_plot
import matplotlib.pyplot as plt
import numpy as np

y = np.sin(np.arange(1,6*np.pi,0.1))
plt.plot(acf(y))
plt.show()

所以结果与此不同:

autocorrelation_plot(y)
plt.show()

1 个答案:

答案 0 :(得分:0)

这似乎与nlags的{​​{1}}参数有关:

  

nlags:int,可选       返回自相关的滞后次数。

我不知道这到底是做什么的,但是在acf的{​​{3}}中有一个切片 缩短了数组:

acf

如果直接使用avf = acovf(x, unbiased=unbiased, demean=True, fft=fft, missing=missing) acf = avf[:nlags + 1] / avf[0] ,则结果与statsmodels.tsa.stattools.acovf相同:

autocorrelation_plot

所以您可以像

那样称呼它
avf = acovf(x, unbiased=unbiased, demean=True, fft=fft, missing=missing)

使其正常工作。

滞后的解释:source