给定不同的二进制时间序列(零表示没有事件,1 表示发生了事件),我们可以看到第一个图中事件发生的间隔高于第二个和最后一个。
我想知道我是否可以使用 scipy 统计或类似傅立叶变换或时间序列分解(或 python 中的其他可能解决方案)来检测和量化这些时间序列中事件频率的差异。** 我知道我可以测量数字 1 出现之间的距离,但我正在为更复杂的时间序列寻找更稳健的方法。
以下代码用于生成图中使用的一些数据:
import pandas as pd
import datetime as dt
x1=np.linspace(1, 1,num=60)
for n in range (1,60):
if n % 2 == 0:
x1[n*2-3:n*2]=0
x2=np.linspace(1, 1,num=60)
for n in range (0,60):
if n % 3 == 0:
x2[n+1:n+3]=0
x3=np.linspace(1, 1,num=60)
for n in range (0,60):
if n % 2 == 0:
x3[n+1:n+2]=0
df=pd.DataFrame([x1,x2,x3]).T
df['date'] = (pd.date_range(start=dt.datetime(2018, 1, 1),
periods=df.shape[0],
freq='D'))][1]][1]