Node-AIリソース
マニュアルアカデミーカスタムカードギャラリー公開レシピヘルプログイン新規登録
マニュアルアカデミーカスタムカードギャラリー公開レシピヘルプログイン新規登録
トップ/カスタムカードギャラリー/時間差分

時間差分

2024/7/31 17:292025/3/27 11:03
概要活用シーン動作上の注意点分析上の注意点コード入出力の例入力出力
 

概要

AIよりも簡素な予測モデルでは理論上、平均や分散などが大きく変化しないデータ(定常なデータ)を入力として扱う前提があります。
そのため、この前提を満たす必要があるのですが、対象となるデータをそのまま扱おうとした際に、定常なデータではないことは多く、数学の理論的に破綻してしまうリスクがあります。
例えば、以下の飛行機乗船客数(#Passengers)は明らかに定常なデータとは言えないことが一目でわかると思います。
上図のようなデータでも予測対象として利用できるようにするために、既存のデータに対して、ある時刻の値と期先の値の差分をとるという前処理を行うことがあります。
これを「時間差分をとる」、「ラグをとる」と言い、値をラグ数と呼びます。

活用シーン

  • 時間差分の前処理を実施したデータの定常性を確認する際に有用です。
    • 詳細はこちらをご確認ください。
  • 過去の自分との相関を可視化し、適切なラグ数を求める際などに有用です。
    • 過去の自分との相関に関しては、自己相関と偏自己相関で確認することができます。
    • 例えば、自己相関(Autocorrelation)や偏自己相関(Partial Autocorrelation)を可視化することで、以下の結果が得られたとします。
 
  • 自己相関をみると、ラグ数12の周期で強い相関がみられます。
  • 偏自己相関をみてもラグ数12で強い相関がみられます。
→ そのため、「ラグ数12で時間差分を計算したら、定常なデータになるだろうか?」という気付きに繋がります。

動作上の注意点

  • 既存のデータテーブルに対して、目的変数の時間差分データ列を結合します。

分析上の注意点

  • ラグ数に応じて、時間差分データ列の値は欠損値になります。
  • 時間差分は本来は目的変数に対して実施して評価、予測時に差分系列からもとに戻す必要があります。

コード

以下は、具体例としてNode-AIの公開データに含まれている飛行機乗船客に関するデータを用いて、時間差分を実行しております。

入出力の例

入力

Time#Passengers int
1949-01-01112
1949-02-01118
1949-03-01132
1949-04-01129
1949-05-01121
1949-06-01135
1949-07-01148
1949-08-01148
1949-09-01136
1949-10-01119
1949-11-01104
1949-12-01118
1950-01-01115
1950-02-01126
1950-03-01141
1950-04-01135
1950-05-01125

出力

Time#Passengers int#Passengers_lag1 float
1949-01-01112Null
1949-02-011186
1949-03-0113214
1949-04-01129-3
1949-05-01121-8
1949-06-0113514
1949-07-0114813
1949-08-011480
1949-09-01136-12
1949-10-01119-17
1949-11-01104-15
1949-12-0111814
1950-01-01115-3
1950-02-0112611
1950-03-0114115
1950-04-01135-6
1950-05-01125-10
 
 
お問い合わせ
利用規約(PDF:1,527KB)
情報の外部送信について
プライバシーポリシー
 
Copyright © NTT Communications Corporation All Rights Reserved.