python - 是什么产生了与 autocorrelation_plot() 相同的情节?

python - What produces the same plot as autocorrelation_plot()?

我需要来自 autocorrelation_plot() 的自相关系数的值。问题是无法访问此函数的输出,因此我需要另一个函数来获取此类值。这就是为什么我使用 statsmodels 中的 acf() 但它没有得到与 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()

这好像和acfnlags参数有关:

nlags: int, optional Number of lags to return autocorrelation for.

我不知道这到底是做什么的,但是在 acfsource 中有一个切片 缩短数组:

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)

所以你可以这样称呼它

plt.plot(acf(y, nlags=len(y)))

使其发挥作用。

延迟的解释:https://math.stackexchange.com/questions/2548314/what-is-lag-in-a-time-series/2548350