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()
这好像和acf
的nlags
参数有关:
nlags: int, optional
Number of lags to return autocorrelation for.
我不知道这到底是做什么的,但是在 acf
的 source 中有一个切片
缩短数组:
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
我需要来自 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()
这好像和acf
的nlags
参数有关:
nlags: int, optional Number of lags to return autocorrelation for.
我不知道这到底是做什么的,但是在 acf
的 source 中有一个切片
缩短数组:
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