跳到主要内容

时序差分聚合 serial_diff

Serial Differencing Aggregation

Serial Diff 的公式

其中n是使用的周期。

解释:用当前点减去上一个周期的对应点,然后得出一个新的时序图,周期为1相当于不对时间做归一化求导,它表示一个点到下一个点的变化。单周期差分聚合对移除常量和线性趋势是很有用的。

在本例中,通过计算第一个差异,我们对数据进行去趋势化(例如,去除恒定的线性趋势)。我们可以看到,数据变成了一个平稳的序列(例如,第一个差异随机分布在零附近,似乎没有表现出任何模式/行为)。转换表明数据集遵循随机游走;该值是先前的值+/-随机量。这种洞察力允许选择进一步的分析工具。

图15. 道琼斯指数用第一次差分绘制并固定

较大的周期可用于消除季节性/周期性行为。在这个例子中,旅鼠群是用正弦波+恒定线性趋势+随机噪声合成生成的。正弦波的周期为30天。

第一个差异消除了恒定趋势,只留下一个正弦波。然后将第30个差分应用于第一个差分以去除循环行为,留下一个可用于其他分析的平稳序列。

图16.用第1和第30个差值绘制的勒明斯数据

语法

{
"serial_diff": {
"buckets_path": "the_sum",
"lag": "7"
}
}
参数名描述是否必须默认值
buckets_path我们希望为其查找派生的Bucket的路径必选
lag要从当前值中减去的历史存储段。可选1
gap_policy在数据中发现差距时应用的策略可选skip
format应用于此聚合的输出值的格式可选null
POST /_search
{
"size": 0,
"aggs": {
"my_date_histo": {
"date_histogram": {
"field": "timestamp",
"interval": "day"
},
"aggs": {
"the_sum": {
"sum": {
"field": "lemmings"
}
},
"thirtieth_difference": {
"serial_diff": {
"buckets_path": "the_sum",
"lag" : 30
}
}
}
}
}
}
  1. 在“timestamp”字段上构建名为“my_date_histo”的date_histogram,间隔为一天
  2. 总和度量用于计算字段的总和。这可以是任何度量(总和、最小值、最大值等)
  3. 最后,我们指定一个使用“the_sum”度量作为输入的serial_diff聚合。

通过首先在字段上指定直方图或日期直方图来构建序列差异。然后,您可以选择在直方图内添加常规度量,例如和。最后,serial_diff嵌入到直方图中。然后使用buckets_path参数“指向”直方图内的一个同级度量(有关buckets_path语法的描述,请参阅buckets_path语法