Re Reference AI

技術

時系列データとは

Time Series Data

時間の経過に沿って一定間隔または連続的に観測・記録された、順序に意味のあるデータ

データ系列モデリング

ひとことで言うと

時間の経過とともに記録された、順番に意味があるデータ。

概要

時系列データとは、株価や気温、センサーの計測値のように、時間の経過に沿って観測・記録された、データの順序自体に意味があるデータを指す。 通常のデータと異なり、各時点のデータが直前・直後の値と相関を持つことが多く、季節性(周期的な変動)やトレンド(長期的な傾向)、自己相関(過去の値が将来の値に与える影響)といった性質を持つ場合がある。 RNNLSTMGRUのような系列モデルや、統計的な時系列モデル(ARIMA等)を用いて、将来の値の予測や異常検知に活用される。

背景

画像のように空間的な位置関係を持つデータや、通常の表形式データとは異なり、時間軸に沿った依存関係を明示的に扱わなければ精度の高い予測に至らないデータが存在した。 時系列データという概念は、こうした時間的な順序や周期性を持つデータを、その性質に適した手法で分析・予測するために整理されてきた。

ワークフロー

時系列データを収集・欠損値等を前処理 → トレンド・季節性・残差成分に分解して性質を把握 → 過去の値や周期性を特徴量化(ラグ特徴量・移動平均等) → ARIMA等の統計モデルやRNN系列モデルで学習 → 時系列を意識した分割(未来のデータをテストに使う)で評価する。

コード例

pandasで時系列データのラグ特徴量を作る

import pandas as pd

df = pd.read_csv("sales.csv", parse_dates=["date"], index_col="date")
df["lag_1"] = df["sales"].shift(1)
df["rolling_mean_7"] = df["sales"].rolling(window=7).mean()

利点

  • 過去の値の推移から将来の値を予測でき、需要予測や異常検知など幅広い応用がある
  • 季節性やトレンドを明示的にモデル化することで、単純な回帰よりも精度の高い予測が可能になる

欠点

  • 時間的な依存関係があるため、通常の交差検証のようにデータをランダムに分割して評価すると、未来の情報が学習に混入してしまう
  • 急激な環境変化(コンセプトドリフト)が起きると、過去のパターンに基づく予測の精度が大きく低下する
  • 欠損や外れ値、不規則な観測間隔があると、周期性やトレンドの推定が歪みやすい

比較

  • RNNRNNは、時系列データのように順序に意味のあるデータを扱うために設計されたニューラルネットワーク
  • LSTMLSTMは、長期間にわたる時系列データの依存関係を学習しやすくしたRNNの派生形

関連用語

RNNLSTM

よくある質問

時系列データの評価に交差検証をそのまま使えない理由は?

通常の交差検証はデータをランダムに分割するため、未来のデータで学習し過去のデータを予測するという、実運用ではありえない状況が評価に混入してしまう。時系列では時間順を保った分割が必要。

時系列データの分析にはどんな手法が使われる?

統計的なARIMA系のモデルのほか、RNNLSTMGRUのような系列モデル、勾配ブースティング等にラグ特徴量を与える手法まで幅広く使われる。

関連Zenn記事