我需要来自autocorrelation_plot()的自相关系数的值。问题是来自这个函数的输出是不可访问的,所以我需要另一个函数来获得这样的值。这就是为什么我使用来自statsmodels的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()发布于 2018-08-01 11:33:27
这似乎与acf的acf参数有关。
int,返回自相关的可选延迟数。
我不知道这到底做了什么,但是在来源 of 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)所以你可以把它叫做
plt.plot(acf(y, nlags=len(y)))让它发挥作用。
关于滞后的解释:https://math.stackexchange.com/questions/2548314/what-is-lag-in-a-time-series/2548350
https://stackoverflow.com/questions/51631021
复制相似问题