如何使用自动相关自动检测周期性?

时间:2018-08-01 07:53:21

标签: python pandas confidence-interval periodicity

这是我的代码:

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()

这是自相关图的输出:

auto-correlation plot of y

我想找到一种自动分类函数是否为周期性的方法(无需使用裸眼查看自相关图)。我读到它与置信区间有关,该置信区间是附图中显示的线,但是我仍然不确定我应该如何使用它才能更好地做出决定。那么,有没有一种自动方法可以使用自相关来确定数据的周期性?

不过,这是我尝试的一种自动化方式:

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%。我也不确定。

信用:How can I use numpy.correlate to do autocorrelation? 的第一个答案

0 个答案:

没有答案