时序差分聚合 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
}
}
}
}
}
}
- 在“timestamp”字段上构建名为“my_date_histo”的date_histogram,间隔为一天
- 总和度量用于计算字段的总和。这可以是任何度量(总和、最小值、最大值等)
- 最后,我们指定一个使用“the_sum”度量作为输入的serial_diff聚合。
通过首先在字段上指定直方图或日期直方图来构建序列差异。然后,您可以选择在直方图内添加常规度量,例如和。最后,serial_diff嵌入到直方图中。然后使用buckets_path参数“指向”直方图内的一个同级度量(有关buckets_path语法的描述,请参阅buckets_path语法