series_seasonal()

根据检测到的或给定的周期,计算序列的周期性组件。

语法

series_seasonal(series [,period ])

详细了解语法约定

参数

客户 类型​​ 必需 说明
series dynamic 数值的数组。
period int 每个周期的箱数。 该值可以是任何正整数。 默认情况下,该值设置为 -1,这样就会使用阈值为 0.7 的 series_periods_detect() 自动检测周期。 如果未检测到周期性,则函数返回零。 如果设置了其他值,它将忽略周期性,返回一系列零。

返回

长度与 series 输入相同的动态数组,其中包含序列的计算出的周期性组件。 周期性组件将计算为所有期间中与 bin 位置相对应的所有值的中值。

示例

自动检测期间

在下面的示例中,将自动检测序列的期间。 检测到第一个序列的期间为六个 bin,第二个序列的周期为五个 bin。第三个序列的期间因太短而检测不到,因此会返回一系列零。 请参阅下一个有关如何强制使用期间的示例。

print s=dynamic([2, 5, 3, 4, 3, 2, 1, 2, 3, 4, 3, 2, 1, 2, 3, 4, 3, 2, 1, 2, 3, 4, 3, 2, 1])
| union (print s=dynamic([8, 12, 14, 12, 10, 10, 12, 14, 12, 10, 10, 12, 14, 12, 10, 10, 12, 14, 12, 10]))
| union (print s=dynamic([1, 3, 5, 2, 4, 6, 1, 3, 5, 2, 4, 6]))
| extend s_seasonal = series_seasonal(s)

输出

s s_seasonal
[2,5,3,4,3,2,1,2,3,4,3,2,1,2,3,4,3,2,1,2,3,4,3,2,1] [1.0,2.0,3.0,4.0,3.0,2.0,1.0,2.0,3.0,4.0,3.0,2.0,1.0,2.0,3.0,4.0,3.0,2.0,1.0,2.0,3.0,4.0,3.0,2.0,1.0]
[8,12,14,12,10,10,12,14,12,10,10,12,14,12,10,10,12,14,12,10] [10.0,12.0,14.0,12.0,10.0,10.0,12.0,14.0,12.0,10.0,10.0,12.0,14.0,12.0,10.0,10.0,12.0,14.0,12.0,10.0]
[1,3,5,2,4,6,1,3,5,2,4,6] [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]

强制使用期间

在此示例中,序列的期间太短,无法通过 series_periods_detect() 检测到,因此我们显式地强制使用期间来获取周期模式。

print s=dynamic([1, 3, 5, 1, 3, 5, 2, 4, 6]) 
| union (print s=dynamic([1, 3, 5, 2, 4, 6, 1, 3, 5, 2, 4, 6]))
| extend s_seasonal = series_seasonal(s, 3)

输出

s s_seasonal
[1,3,5,1,3,5,2,4,6] [1.0,3.0,5.0,1.0,3.0,5.0,1.0,3.0,5.0]
[1,3,5,2,4,6,1,3,5,2,4,6] [1.5,3.5,5.5,1.5,3.5,5.5,1.5,3.5,5.5,1.5,3.5,5.5]