我需要来自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()
答案 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