mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-13 09:52:38 +00:00
165 lines
6.1 KiB
Markdown
165 lines
6.1 KiB
Markdown
|
---
|
|||
|
slug: /ja/sql-reference/functions/time-series-functions
|
|||
|
sidebar_position: 172
|
|||
|
sidebar_label: タイムシリーズ
|
|||
|
---
|
|||
|
|
|||
|
# タイムシリーズ関数
|
|||
|
|
|||
|
以下の関数は、シリーズデータの分析に使用されます。
|
|||
|
|
|||
|
## seriesOutliersDetectTukey
|
|||
|
|
|||
|
[Tukey Fences](https://en.wikipedia.org/wiki/Outlier#Tukey%27s_fences) を用いてシリーズデータの外れ値を検出します。
|
|||
|
|
|||
|
**構文**
|
|||
|
|
|||
|
``` sql
|
|||
|
seriesOutliersDetectTukey(series);
|
|||
|
seriesOutliersDetectTukey(series, min_percentile, max_percentile, K);
|
|||
|
```
|
|||
|
|
|||
|
**引数**
|
|||
|
|
|||
|
- `series` - 数値の配列。
|
|||
|
- `min_percentile` - 四分位範囲 [(IQR)](https://en.wikipedia.org/wiki/Interquartile_range) を計算するために使用される最小パーセンタイル。値は [0.02,0.98] の範囲で指定する必要があります。デフォルトは 0.25 です。
|
|||
|
- `max_percentile` - 四分位範囲 (IQR) を計算するために使用される最大パーセンタイル。値は [0.02,0.98] の範囲で指定する必要があります。デフォルトは 0.75 です。
|
|||
|
- `K` - 軽度または強い外れ値を検出するための非負定数値。デフォルト値は 1.5 です。
|
|||
|
|
|||
|
外れ値を検出するためには、`series` に少なくとも4つのデータポイントが必要です。
|
|||
|
|
|||
|
**戻り値**
|
|||
|
|
|||
|
- シリーズ内の各要素に対応する可能性のある異常のスコアを表す、元の入力配列と同じ長さの配列を返します。非ゼロのスコアは異常の可能性を示します。[Array](../data-types/array.md)。
|
|||
|
|
|||
|
**例**
|
|||
|
|
|||
|
クエリ:
|
|||
|
|
|||
|
``` sql
|
|||
|
SELECT seriesOutliersDetectTukey([-3, 2, 15, 3, 5, 6, 4, 5, 12, 45, 12, 3, 3, 4, 5, 6]) AS print_0;
|
|||
|
```
|
|||
|
|
|||
|
結果:
|
|||
|
|
|||
|
``` text
|
|||
|
┌───────────print_0─────────────────┐
|
|||
|
│[0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0] │
|
|||
|
└───────────────────────────────────┘
|
|||
|
```
|
|||
|
|
|||
|
クエリ:
|
|||
|
|
|||
|
``` sql
|
|||
|
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;
|
|||
|
```
|
|||
|
|
|||
|
結果:
|
|||
|
|
|||
|
``` text
|
|||
|
┌─print_0──────────────────────────────┐
|
|||
|
│ [0,0,0,0,0,0,0,0,0,19.5,0,0,0,0,0,0] │
|
|||
|
└──────────────────────────────────────┘
|
|||
|
```
|
|||
|
|
|||
|
## seriesPeriodDetectFFT
|
|||
|
|
|||
|
FFT を用いて与えられたシリーズデータの周期を見つけます。
|
|||
|
FFT - [高速フーリエ変換](https://en.wikipedia.org/wiki/Fast_Fourier_transform)
|
|||
|
|
|||
|
**構文**
|
|||
|
|
|||
|
``` sql
|
|||
|
seriesPeriodDetectFFT(series);
|
|||
|
```
|
|||
|
|
|||
|
**引数**
|
|||
|
|
|||
|
- `series` - 数値の配列
|
|||
|
|
|||
|
**戻り値**
|
|||
|
|
|||
|
- シリーズデータの周期に等しい実数値を返します。データポイントが4つ未満の場合は NaN を返します。[Float64](../data-types/float.md).
|
|||
|
|
|||
|
**例**
|
|||
|
|
|||
|
クエリ:
|
|||
|
|
|||
|
``` sql
|
|||
|
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;
|
|||
|
```
|
|||
|
|
|||
|
結果:
|
|||
|
|
|||
|
``` text
|
|||
|
┌───────────print_0──────┐
|
|||
|
│ 3 │
|
|||
|
└────────────────────────┘
|
|||
|
```
|
|||
|
|
|||
|
``` sql
|
|||
|
SELECT seriesPeriodDetectFFT(arrayMap(x -> abs((x % 6) - 3), range(1000))) AS print_0;
|
|||
|
```
|
|||
|
|
|||
|
結果:
|
|||
|
|
|||
|
``` text
|
|||
|
┌─print_0─┐
|
|||
|
│ 6 │
|
|||
|
└─────────┘
|
|||
|
```
|
|||
|
|
|||
|
## seriesDecomposeSTL
|
|||
|
|
|||
|
STL [(ローカルウエイト回帰を用いた季節トレンド分解手法)](https://www.wessa.net/download/stl.pdf) を使用してシリーズデータを季節、トレンド、および残差成分に分解します。
|
|||
|
|
|||
|
**構文**
|
|||
|
|
|||
|
``` sql
|
|||
|
seriesDecomposeSTL(series, period);
|
|||
|
```
|
|||
|
|
|||
|
**引数**
|
|||
|
|
|||
|
- `series` - 数値の配列
|
|||
|
- `period` - 正の整数
|
|||
|
|
|||
|
`series` には `period` の2倍以上のデータポイントがある必要があります。
|
|||
|
|
|||
|
**戻り値**
|
|||
|
|
|||
|
- 4つの配列を含む配列を返します。最初の配列は季節成分、2番目の配列はトレンド、3番目の配列は残差成分、4番目の配列はベースライン(季節+トレンド)成分です。[Array](../data-types/array.md)。
|
|||
|
|
|||
|
**例**
|
|||
|
|
|||
|
クエリ:
|
|||
|
|
|||
|
``` sql
|
|||
|
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;
|
|||
|
```
|
|||
|
|
|||
|
結果:
|
|||
|
|
|||
|
``` text
|
|||
|
┌───────────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
|
|||
|
]] │
|
|||
|
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
|||
|
```
|