时间序列函数
以下函数用于序列数据分析。
seriesOutliersDetectTukey
使用 Tukey 围栏法检测序列数据中的异常值。
语法
seriesOutliersDetectTukey(series);
seriesOutliersDetectTukey(series, min_percentile, max_percentile, K);
参数
series
- 数值数组。min_percentile
- 用于计算四分位距 (IQR) 的最小百分位数。值必须在 [0.02,0.98] 范围内。默认值为 0.25。max_percentile
- 用于计算四分位距 (IQR) 的最大百分位数。值必须在 [0.02,0.98] 范围内。默认值为 0.75。K
- 用于检测轻度或更强异常值的非负常数值。默认值为 1.5。
series
中至少需要四个数据点才能检测异常值。
返回值
- 返回与输入数组长度相同的数组,其中每个值表示序列中相应元素的可能异常评分。非零评分表示可能的异常。数组。
示例
查询
SELECT seriesOutliersDetectTukey([-3, 2, 15, 3, 5, 6, 4, 5, 12, 45, 12, 3, 3, 4, 5, 6]) AS print_0;
结果
┌───────────print_0─────────────────┐
│[0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0] │
└───────────────────────────────────┘
查询
SELECT seriesOutliersDetectTukey([-3, 2, 15, 3, 5, 6, 4.50, 5, 12, 45, 12, 3.40, 3, 4, 5, 6], 0.2, 0.8, 1.5) AS print_0;
结果
┌─print_0──────────────────────────────┐
│ [0,0,0,0,0,0,0,0,0,19.5,0,0,0,0,0,0] │
└──────────────────────────────────────┘
seriesPeriodDetectFFT
使用 FFT FFT - 快速傅里叶变换查找给定序列数据的数据周期
语法
seriesPeriodDetectFFT(series);
参数
series
- 数值数组
返回值
- 一个实数值,等于序列数据的周期。当数据点数少于四个时为 NaN。Float64。
示例
查询
SELECT seriesPeriodDetectFFT([1, 4, 6, 1, 4, 6, 1, 4, 6, 1, 4, 6, 1, 4, 6, 1, 4, 6, 1, 4, 6]) AS print_0;
结果
┌───────────print_0──────┐
│ 3 │
└────────────────────────┘
SELECT seriesPeriodDetectFFT(arrayMap(x -> abs((x % 6) - 3), range(1000))) AS print_0;
结果
┌─print_0─┐
│ 6 │
└─────────┘
seriesDecomposeSTL
使用 STL (基于 Loess 的季节趋势分解程序) 将序列数据分解为季节性、趋势性和残差分量。
语法
seriesDecomposeSTL(series, period);
参数
series
- 数值数组period
- 正整数
series
中的数据点数应至少为 period
值的两倍。
返回值
- 一个包含四个数组的数组,其中第一个数组包含季节性分量,第二个数组 - 趋势,第三个数组 - 残差分量,第四个数组 - 基线(季节性 + 趋势)分量。数组。
示例
查询
SELECT seriesDecomposeSTL([10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34], 3) AS print_0;
结果
┌───────────print_0──────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [[
-13.529999, -3.1799996, 16.71, -13.53, -3.1799996, 16.71, -13.53, -3.1799996,
16.71, -13.530001, -3.18, 16.710001, -13.530001, -3.1800003, 16.710001, -13.530001,
-3.1800003, 16.710001, -13.530001, -3.1799994, 16.71, -13.529999, -3.1799994, 16.709997
],
[
23.63, 23.63, 23.630003, 23.630001, 23.630001, 23.630001, 23.630001, 23.630001,
23.630001, 23.630001, 23.630001, 23.63, 23.630001, 23.630001, 23.63, 23.630001,
23.630001, 23.63, 23.630001, 23.630001, 23.630001, 23.630001, 23.630001, 23.630003
],
[
0, 0.0000019073486, -0.0000019073486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0000019073486, 0,
0
],
[
10.1, 20.449999, 40.340004, 10.100001, 20.45, 40.34, 10.100001, 20.45, 40.34, 10.1, 20.45, 40.34,
10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.100002, 20.45, 40.34
]] │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘