売上予測・需要予測・気温予測など、時間の経過とともに変化するデータを扱う「時系列データ」の分析では、特有の特徴量の作り方が存在します。
その中でも特に基本的かつ重要な手法が「ラグ特徴量」です。
本記事では、ラグ特徴量の意味と時系列データでの作成方法について、時間遅れ・過去データ・予測モデル・移動平均・差分系列といったキーワードを交えながら、わかりやすく丁寧に解説していきます。
時系列データの分析・予測に取り組んでいる方にとって、必ず役立つ実践的な内容です。
ぜひ最後まで読み進めてください。
目次
ラグ特徴量とは何か?結論からわかりやすく解説
それではまず、ラグ特徴量という言葉の基本的な意味について解説していきます。
ラグ特徴量とは、時系列データにおいて、ある時点のデータを予測する際に、その時点よりも過去(時間的に遅れた時点)のデータを特徴量として利用するもののことです。
「ラグ(lag)」という英単語は「遅れ」「遅延」という意味を持ち、時系列データの分析・予測において、非常に基本的かつ重要な特徴量のひとつとして位置づけられています。
ラグ特徴量の本質は「過去の値を未来予測の手がかりとして使う」という、非常に直感的な考え方です。たとえば、今日の売上を予測する際に「昨日の売上」「1週間前の売上」を参考にするのは、人間が日常的に行っている思考プロセスでもあります。ラグ特徴量は、この自然な発想を機械学習モデルに組み込むための手法なのです。
時系列データには、過去のパターンが将来にも繰り返される傾向(自己相関)が存在することが多く、ラグ特徴量はこの自己相関を活用するための基本的な手段といえます。
ラグ特徴量の定義
ラグ特徴量は、具体的には「現在の時点からn個前のデータの値」として定義されます。
たとえば、1日前のデータを使う場合は「ラグ1」、7日前のデータを使う場合は「ラグ7」と表現されます。
これらのラグ特徴量を、予測モデルへの入力として追加することで、モデルは過去の値と現在の値との関係性を学習できるようになります。
時間遅れという考え方
「時間遅れ」という考え方は、ラグ特徴量を理解する上での核心となる概念です。
【時間遅れ(ラグ)のイメージ】
現在の時点をtとする
1時点前のデータはt-1(ラグ1)
2時点前のデータはt-2(ラグ2)
n時点前のデータはt-n(ラグn)
このように、現在の時点を基準として、どれだけ過去に遡ったデータを使うかを示す数値が「ラグ」と呼ばれます。
時系列予測モデルにおける役割
時系列予測モデルにおいて、ラグ特徴量は非常に基本的でありながら、強力な役割を果たします。
多くの時系列データには、季節性(一定の周期で繰り返されるパターン)やトレンド(長期的な傾向)が存在しており、適切なラグを選択することで、これらのパターンをモデルに学習させることができるのです。
たとえば、曜日ごとの傾向がある売上データであれば、7日前のデータ(ラグ7)が、強い予測力を持つ特徴量となる可能性があります。
ラグ特徴量の基本的な作成方法
続いては、ラグ特徴量を実際にどのように作成するのか、基本的な方法について確認していきます。
作成方法そのものは非常にシンプルですが、いくつかの工夫が必要になります。
シフト操作による作成
ラグ特徴量を作成する基本的な操作は、「シフト(ずらし)」という処理です。
時系列データを時間軸に沿って並べた上で、その値を一定数だけ後ろにずらすことで、ラグ特徴量を作成することができます。
【シフト操作のイメージ】
元のデータ 1日目10、2日目12、3日目15、4日目11
ラグ1特徴量 1日目欠損、2日目10、3日目12、4日目15
このようにラグ特徴量の先頭部分には値が存在しない(欠損)状態が生まれる
多くのデータ分析ライブラリには、このシフト操作を簡単に行うための関数が用意されており、実装上は比較的容易に作成することができます。
ラグの期間(ラグ数)の選び方
ラグ特徴量を作成する際に重要なのが、「どのくらい過去のデータを使うか」というラグの期間(ラグ数)の選び方です。
データの周期性(日次データなら7日、月次データなら12ヶ月など)に基づいてラグ数を設定することが、効果的なラグ特徴量を作成するための基本的な考え方です。
| データの種類 | 考慮すべきラグの例 |
|---|---|
| 日次データ(売上など) | ラグ1(前日)、ラグ7(前週同日) |
| 月次データ(需要など) | ラグ1(前月)、ラグ12(前年同月) |
| 時間単位データ(電力消費など) | ラグ1(1時間前)、ラグ24(前日同時刻) |
適切なラグ数は、データの性質によって異なるため、ドメイン知識や、自己相関を確認するための統計的な分析を通じて検討することが望ましいでしょう。
複数のラグ特徴量の組み合わせ
多くの場合、単一のラグ特徴量だけでなく、複数の異なるラグ数の特徴量を組み合わせて使用します。
たとえば、ラグ1・ラグ2・ラグ7といった複数のラグ特徴量を同時にモデルへ入力することで、短期的な変化と、周期的なパターンの両方をモデルが捉えられるようになります。
ただし、ラグの数を増やしすぎると、特徴量の数が膨大になり、以前の記事で紹介した「過学習」のリスクが高まる可能性もあるため、適切なバランスを考える必要があります。
移動平均・差分系列との組み合わせ
続いては、ラグ特徴量と組み合わせてよく使われる、移動平均・差分系列といった、時系列データ特有の特徴量について確認していきます。
これらの特徴量は、ラグ特徴量と組み合わせることで、より豊かな情報をモデルに提供することができます。
移動平均特徴量
移動平均特徴量とは、過去の一定期間のデータの平均値を、新しい特徴量として作成したもののことです。
たとえば「過去7日間の平均」を計算し、それを特徴量として使用することで、短期的なノイズ(細かな上下動)を平滑化し、より大きなトレンドをモデルに伝えることができます。
【移動平均特徴量のイメージ】
3日間の移動平均の例
3日目の特徴量 1日目・2日目・3日目のデータの平均
4日目の特徴量 2日目・3日目・4日目のデータの平均
このように一定の窓(期間)をずらしながら平均値を計算していく
移動平均特徴量は、ラグ特徴量と組み合わせることで、「直近の値」と「最近の傾向」という、2つの異なる視点の情報を同時にモデルへ提供することができます。
差分系列
差分系列とは、ある時点のデータと、それより前の時点のデータとの「差」を新しい特徴量として作成したもののことです。
差分系列を計算することで、データの「変化量」そのものに着目した分析が可能になります。
| 特徴量の種類 | 計算内容 | 得られる情報 |
|---|---|---|
| ラグ特徴量 | 過去の値そのもの | 過去の状態 |
| 移動平均特徴量 | 過去一定期間の平均 | 大きなトレンド |
| 差分系列 | 現在値と過去値の差 | 変化の方向・大きさ |
特に、長期的に増加・減少する傾向(トレンド)を持つデータでは、差分系列に変換することで、トレンドの影響を取り除き、データをより扱いやすい形にすることができる場合があります。
季節性を考慮した特徴量
時系列データには、曜日・月・季節といった、周期的な要因によって生じる「季節性」が存在することが多くあります。
季節性を考慮した特徴量としては、適切な周期のラグ特徴量(前年同月のデータなど)に加えて、曜日や月そのものを表すカテゴリ特徴量を組み合わせることも一般的です。
これらの季節性に関する特徴量を適切に組み込むことで、モデルが繰り返されるパターンをより正確に学習できるようになります。
ラグ特徴量を使う上での注意点
続いては、ラグ特徴量を実際に使用する際に注意すべきポイントについて確認していきます。
時系列データの特徴量作成には、他のデータとは異なる特有の注意点が存在します。
データリークのリスク
時系列データを扱う上で、最も注意すべき問題のひとつが「データリーク」です。
データリークとは、本来予測時点では知り得ないはずの「未来の情報」が、誤って特徴量に含まれてしまう問題のことです。
ラグ特徴量を作成する際には、予測したい時点よりも未来のデータが、誤って特徴量として使われていないかを、必ず確認する必要があるでしょう。
例えば、データ全体を使って統計量を計算してから時系列を分割するような処理は、データリークの典型的な原因となりやすいため、特に注意が必要です。
欠損値の扱い
シフト操作によってラグ特徴量を作成すると、データの先頭部分には必ず欠損値が生じます。
【ラグ特徴量における欠損値への対応例】
欠損が発生する先頭の行を削除する
欠損値を適切な値(0など)で補完する
大きなラグを使う場合は欠損する行数も増えることを考慮する
特に、複数の異なるラグ数の特徴量を組み合わせる場合、最も大きいラグ数に応じて、欠損する行数が決まることになります。
特徴量の数と過学習
最後に、ラグ特徴量・移動平均・差分系列など、時系列データから作成できる特徴量は非常に多岐にわたります。
これらをすべて作成して使用すると、特徴量の数が膨大になり、以前の記事で紹介したような過学習のリスクが高まる可能性があります。
特徴量選択の手法を活用し、本当に予測に有用な特徴量を見極めていくことが、時系列データの分析においても重要なプロセスとなります。
ラグ特徴量は強力で基本的な手法ですが、その作成・活用には、時系列データ特有の注意点を十分に理解した上で取り組むことが大切です。
まとめ
本記事では、ラグ特徴量の意味・時間遅れという考え方・時系列予測モデルにおける役割、基本的な作成方法、移動平均や差分系列との組み合わせ、使用上の注意点まで幅広く解説しました。
ラグ特徴量とは、時系列データにおいて、過去のデータを現在の予測のための特徴量として利用するものであり、時系列分析における最も基本的な手法のひとつです。
シフト操作によって作成され、データの周期性に応じた適切なラグ数の選択が重要になります。
移動平均特徴量・差分系列といった他の時系列特有の特徴量と組み合わせることで、より多角的な情報をモデルに提供できます。
データリーク・欠損値の扱い・特徴量数の増加による過学習といった注意点を理解しながら、時系列データの予測精度向上に活用していきましょう。