这是我的代码:
import matplotlib.pyplot as plt
import numpy as np
from pandas.plotting import autocorrelation_plot
y = np.sin(np.arange(1,6*3.14,0.1))
autocorrelation_plot(y)
plt.show()
这是自相关图的输出:
我想找出一种方法来自动分类函数是否是周期性的(不使用裸眼查看自相关图)。我读到它与附图中显示的线的置信区间有关,但仍然怀疑我应该如何处理它以更好地做出决定。那么有没有一种自动化的方法来使用自相关来决定数据的周期性?
不过,这是我对自动化方式的尝试:
result = np.correlate(y, y, mode = "full")
ACF = result[np.round(result.size/2).astype(int):]
ACF = ACF/ACF[0]
acceptedVar = []
for i in range(len(ACF)):
if ACF[i] > 0.05:
acceptedVar = np.append(acceptedVar, ACF[i])
percent = len(acceptedVar)/len(ACF) * 100
我刚刚设定了 0.05 的阈值来检测置信区间为 95% 的点。不知道这在统计上和逻辑上是对还是错。然后,我查看百分比是否大于 95% 的周期性模式。我也不确定。
归功于:如何使用 numpy.correlate 进行自相关 的第一个答案?