メインコンテンツまでスキップ
メインコンテンツまでスキップ

時系列関数

以下の関数は系列データの分析に使用されます。

seriesOutliersDetectTukey

Tukey Fencesを使用して系列データの外れ値を検出します。

構文

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 内で外れ値を検出するには、少なくとも 4 つのデータポイントが必要です。

返される値

  • 入力配列と同じ長さの配列を返します。各値は、系列内の対応する要素の可能性のある異常のスコアを表します。ゼロでないスコアは、可能性のある異常を示します。 配列

クエリ:

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 - 高速フーリエ変換を使用して、与えられた系列データの周期を見つけます。

構文

seriesPeriodDetectFFT(series);

引数

  • series - 数値の配列

返される値

  • 系列データの周期に等しい実数値。データポイントの数が 4 未満の場合は 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 の値の 2 倍以上である必要があります。

返される値

  • 季節成分を含む最初の配列、トレンドを含む2番目の配列、残差成分を含む3番目の配列、基準(季節 + トレンド)成分を含む4番目の配列からなる4つの配列の配列を返します。 配列

クエリ:

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
    ]]                                                                                                                   │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘