[comment]: # attributes: notoc

[comment]: # ({5b5180a2-2e2a1a06})
# 8 予測関数

ここに記載されているすべての関数は、以下でサポートされています。

-   [トリガー式](/manual/config/triggers/expression)
-   [計算アイテム](/manual/config/items/itemtypes/calculated)
-   [式マクロ](/manual/config/macros/expression_macros)

関数は追加情報なしで一覧表示されています。詳細については、関数をクリックしてください。

|関数|説明|
|--|--------|
|[forecast](#forecast)|アイテムの将来の値、最大値、最小値、差分、または平均値。|
|[timeleft](#timeleft)|アイテムが指定したしきい値に到達するまでに必要な時間（秒）。|

[comment]: # ({/5b5180a2-2e2a1a06})

[comment]: # ({645b8a56-4d343eb8})
##### 共通パラメータ

-   `/host/key` は、ホストのアイテム履歴を参照する関数に共通する必須の第1パラメータです
-   `(sec|#num)<:time shift>` は、ホストのアイテム履歴を参照する関数に共通する第2パラメータで、以下を意味します:
    -   **sec** - 秒単位の最大[評価期間](/manual/config/triggers#evaluation-period)
        （時間の[サフィックス](/manual/appendix/suffixes)を使用できます）、または
    -   **#num** - 直近に収集された値における最大[評価範囲](/manual/config/triggers#evaluation-period)
        （ハッシュ記号が前に付く場合）
    -   **time shift** （任意）- 評価時点を過去に移動できます。time shift の指定方法の詳細は、[こちら](/manual/config/triggers/expression#time-shift)を参照してください。

[comment]: # ({/645b8a56-4d343eb8})

[comment]: # ({c645f0e4-f3b63bc1})
### 関数の詳細

関数のパラメータに関する一般的な注意事項:

- 関数のパラメータはカンマで区切ります。
- オプションの関数パラメータ（またはパラメータ部分）は、`<` `>` で示されます。
- 関数固有のパラメータは、各関数で説明されています。
- `/host/key` および `(sec|#num)<:timeshift>` パラメータは引用符で囲んではなりません。

[comment]: # ({/c645f0e4-f3b63bc1})

[comment]: # ({8a873b31-e4452b37})

##### forecast(/host/key,(sec|#num)<:time shift>,time,<fit>,<mode>) {#forecast}

アイテムの将来値、最大値、最小値、差分、または平均値<br>
サポートされる値の型: *Float*、*Integer*

パラメーター:

- [共通パラメーター](#common-parameters) を参照してください。<br>
- **time** - 予測期間（秒単位）（時間サフィックスを使用できます）。負の値もサポートされています。<br>
- **fit** (オプション。二重引用符で囲む必要があります) - 履歴データをフィッティングするために使用する関数。サポートされている近似値:<br>*linear* - 線形関数 (デフォルト)<br>*polynomialN* - N 次多項式 (1 <= N <= 6)<br>*exponential* - 指数関数<br>*logarithmic* - 対数関数<br>*power* - べき乗関数<br>*polynomial1* は *linear* と同等であることに注意してください。
- **mode** (オプション。二重引用符で囲む必要があります) - 要求される出力。サポートされているモード:<br>*value* - 値 (デフォルト)<br>*max* - 最大値<br>*min* - 最小値<br>*delta* - *max*-*min*<br>*avg* - 平均<br>*value* は、`now` + `time` の時点における項目値を推定することに注意してください。*max*、*min*、*delta*、および *avg* は、`now` から `now` + `time` までの区間における項目値の推定値を調べます。

コメント:

- 返される値が 1.7976931348623158E+308 より大きい場合、または -1.7976931348623158E+308 より小さい場合、返される値はそれぞれ 1.7976931348623158E+308 または -1.7976931348623158E+308 に切り詰められます。
- 式内で誤って使用されている場合（項目タイプが間違っている、パラメータが無効）のみサポート対象外となり、それ以外の場合はエラー時に -1 を返します。
- [予測トリガー関数](/manual/config/triggers/prediction) に関する追加情報も参照してください。

例:

    forecast(/host/key,#10,1h) # 過去10個の値に基づいて、1時間後のアイテムの値を予測します。
    forecast(/host/key,1h,30m) # 過去1時間のデータに基づいて、30分後のアイテムの値を予測します。
    forecast(/host/key,1h:now-1d,12h) # 1日前の1時間に基づいて、12時間後のアイテムの値を予測します。
    forecast(/host/key,1h,10m,"exponential") # 過去1時間のデータと指数関数に基づいて、10分後のアイテムの値を予測します。
    forecast(/host/key,1h,2h,"polynomial3","max") # 過去1時間のデータと3次多項式に基づいて、今後2時間でアイテムが到達できる最大値を予測します。
    forecast(/host/key,#2,-20m) # 過去2つの値に基づいて、20分前のアイテムの値を推定します（これはさらに長い場合があります）特にアイテムが1時間に1回など、めったに更新されない場合は、last() を使用するよりも正確です。

[comment]: # ({/8a873b31-e4452b37})

[comment]: # ({834aceba-9b065620})

##### timeleft(/host/key,(sec|#num)<:timeshift>,threshold,<fit>) {#timeleft}

アイテムが指定されたしきい値に達するまでに必要な時間（秒）<br>
サポートされる値の型：*Float*、*Integer*

パラメーター：

- [共通パラメーター](#common-parameters) を参照してください。<br>
- **threshold** - 到達すべき値（[単位サフィックス](/manual/appendix/suffixes) を使用できます。）
- **fit** (オプション。二重引用符で囲む必要があります) - [forecast()](#forecast) を参照してください。

コメント:

- 返される値が 1.7976931348623158E+308 より大きい場合、返される値は 1.7976931348623158E+308 に切り詰められます。
- しきい値に達しない場合は 1.7976931348623158E+308 を返します。
- 式で誤って使用されている場合（項目タイプが間違っている、パラメータが無効）のみサポート対象外となり、それ以外の場合はエラー時に -1 を返します。
- [予測トリガー関数](/manual/config/triggers/prediction) に関する追加情報も参照してください。

例:

    timeleft(/host/key,#10,0) # 過去10回分のデータに基づき、アイテムの値が0に達するまでの時間
    timeleft(/host/key,1h,100) # 過去1時間分のデータに基づき、アイテムの値が100に達するまでの時間
    timeleft(/host/key,1h:now-1d,100) # 1日前の1時間分に基づき、アイテムの値が100に達するまでの時間
    timeleft(/host/key,1h,200,"polynomial2") # 過去1時間分のデータに基づき、アイテムが2次多項式のように振舞うと仮定して、アイテムの値が200に達するまでの時間

[comment]: # ({/834aceba-9b065620})

[comment]: # ({ba59dd3a-9958c480})

[サポートされているすべての関数](/manual/appendix/functions)を参照してください。

[comment]: # ({/ba59dd3a-9958c480})

