series_decompose_forecast()

系列分解に基づいて予測します。

系列 (動的な数値配列) を含む式を入力として受け取り、最後の末尾の点の値を予測します。 詳細については、「series_decompose」を参照してください。

構文

series_decompose_forecast(シリーズ,ポイント, [ 季節性,傾向,Seasonality_threshold ])

構文規則について詳しく知る。

パラメーター

名前 必須 説明
系列 dynamic ✔️ 数値の配列。通常は、 make-series 演算子または make_list 演算子の結果の出力。
Points int ✔️ 予測する系列の末尾にあるポイント数 (予測) を指定します。 これらのポイントは、学習 (回帰) プロセスから除外されます。
季節性 int 季節分析を制御します。 次の値を指定できます。

- -1: series_periods_detectを使用して季節性を自動検出します。 これが既定値です。
- Period: bin の数で予想される期間を指定する正の整数。たとえば、系列がビン内にある 1 - h 場合、週単位の期間は 168 ビンです。
- 0: 季節性がないため、このコンポーネントの抽出をスキップします。
傾向 string 傾向分析を制御します。 次の値を指定できます。

- avg: 傾向コンポーネントを として average(x)定義します。 既定値です。
- linefit: 線形回帰を使用して傾向コンポーネントを抽出します。
- none: 傾向がないため、このコンポーネントの抽出をスキップします。
Seasonality_threshold real 季節性が自動検出に設定されている場合の 季節性 スコアのしきい値。 既定のスコアしきい値は 0.6 です。

詳細については、「series_periods_detect」を参照してください。

戻り値

予測系列を含む動的配列。

Note

  • 元の入力系列の動的配列には、予測するポイント スロットの数を含める必要があります。 予測を行うには、通常、make-series を使用して、予測する期間を含む範囲の終了時間を指定します。
  • 季節性または傾向のいずれかを有効にする必要があります。それ以外の場合、関数は冗長であり、ゼロで塗りつぶされた系列を返します。

次の例では、1 時間の粒度で、週単位の季節性と小さな上昇傾向を持つ 4 週間の系列を生成します。 次に、make-series を使用して系列に空の週を追加します。 series_decompose_forecast を 1 週間 (24 * 7 ポイント) で呼び出すと、季節性と傾向が自動的に検出され、5 週間の期間全体の予測が生成されます。

let ts=range t from 1 to 24*7*4 step 1 // generate 4 weeks of hourly data
| extend Timestamp = datetime(2018-03-01 05:00) + 1h * t 
| extend y = 2*rand() + iff((t/24)%7>=5, 5.0, 15.0) - (((t%24)/10)*((t%24)/10)) + t/72.0 // generate a series with weekly seasonality and ongoing trend
| extend y=iff(t==150 or t==200 or t==780, y-8.0, y) // add some dip outliers
| extend y=iff(t==300 or t==400 or t==600, y+8.0, y) // add some spike outliers
| make-series y=max(y) on Timestamp from datetime(2018-03-01 05:00) to datetime(2018-03-01 05:00)+24*7*5h step 1h; // create a time series of 5 weeks (last week is empty)
ts 
| extend y_forcasted = series_decompose_forecast(y, 24*7)  // forecast a week forward
| render timechart 

系列分解予測。