はじめに
売上、受注件数、来店数、在庫数、問い合わせ件数、広告反応、設備データなど、多くの業務データは時間の流れに沿って記録されています。
このようなデータを時系列データと呼びます。時系列データは、日次売上、月次受注数、時間帯別アクセス数のように、時間の順序を持つデータです。
時系列データを分析できるようになると、過去の傾向を把握したり、需要の変動を確認したり、販促施策のタイミングを検討したりする際に役立ちます。
ただし、時系列データは、そのまま表やグラフにするだけでは、予測や意思決定に使いにくい場合があります。
例えば、日次売上データに「日付」と「売上」だけが入っていても、前日の売上、1週間前の売上、直近7日間の平均、曜日、販促実施有無などが整理されていなければ、売上変動の背景を把握しにくくなります。
そこで重要になるのが、時系列データの特徴量エンジニアリングです。
本記事では、ラグ特徴量、ウィンドウ特徴量、差分特徴量、カレンダー特徴量の考え方を解説し、Pythonによる簡単な疑似売上データの例と、ビジネスへの応用例を紹介します。
時系列データの特徴量エンジニアリングとは
特徴量とは、分析や予測に使うために整理されたデータ項目です。
例えば、売上予測を考える場合、単に「今日の売上」だけを見るのではなく、以下のような情報が役立つことがあります。
- 前日の売上
- 1週間前の売上
- 直近7日間の平均売上
- 前日との差
- 曜日
- 月
- 販促実施の有無
- 祝日やイベントの有無
このように、元データから分析や予測に使いやすい項目を作る作業を、特徴量エンジニアリングと呼びます。
時系列データの特徴量エンジニアリングでは、特に以下のような観点が重要になります。
| 観点 | 例 |
|---|---|
| 過去の値 | 前日売上、7日前売上、前年同週売上 |
| 直近傾向 | 7日平均、30日平均、移動合計 |
| ばらつき | 直近7日の標準偏差、最大値、最小値 |
| 変化量 | 前日差、前週差、前日比 |
| 周期性 | 曜日、月、四半期、月末、祝日 |
| 施策情報 | 販促実施、広告配信、キャンペーン期間 |
特徴量エンジニアリングは、単なるデータ加工ではありません。
過去の動き、直近傾向、周期性、変化量を、ビジネス判断に使える情報へ変換する作業です。
なぜ時系列データはそのままでは使いにくいのか
時系列データは、日付順に並べるだけでも一定の傾向は見えます。
しかし、売上予測、需要予測、販促判断、在庫管理などに活用する場合、そのままでは不十分なことがあります。
過去の影響が列として表現されていない
多くのビジネスデータでは、現在の値は過去の値の影響を受けます。
例えば、今日の売上は、昨日の売上や1週間前の同じ曜日の売上と関係しているかもしれません。
しかし、元データに「今日の売上」しか入っていなければ、その関係を分析しにくくなります。
曜日や季節性が埋もれている
小売、飲食、EC、問い合わせ対応などでは、曜日や月によって数値が変わることがあります。
土日に売上が増える業態もあれば、月末に受注が増える業務もあります。
日付データから曜日や月などを取り出して特徴量にすると、こうした周期性を分析しやすくなります。
直近傾向が見えにくい
日々のデータは、ノイズを含みます。
ある日の売上が高かったとしても、それが一時的な変動なのか、継続的な上昇傾向なのかは、単日データだけでは判断しにくい場合があります。
直近7日平均や直近30日平均のようなウィンドウ特徴量を作ることで、短期的なばらつきをならし、傾向を把握しやすくなります。
ラグ特徴量とは
ラグ特徴量とは、過去の値を現在のデータに紐づけた特徴量です。
例えば、日次売上データであれば、以下のような特徴量が考えられます。
| 特徴量 | 意味 |
|---|---|
| lag_1 | 1日前の売上 |
| lag_7 | 7日前の売上 |
| lag_30 | 30日前の売上 |
| lag_365 | 1年前の同日売上 |
ラグ特徴量は、時系列データ分析で非常によく使われます。
例えば、今日の売上を考えるとき、昨日の売上や1週間前の同じ曜日の売上は参考情報になります。
特に、曜日の影響が大きい業務では、lag_7、つまり7日前の値が有効な参考情報になることがあります。
ただし、ラグ特徴量を作る際は、将来の情報を使わないように注意が必要です。
予測したい時点より後の情報を特徴量に含めてしまうと、実務では使えない分析になってしまいます。この問題をデータリーケージと呼びます。
ウィンドウ特徴量とは
ウィンドウ特徴量とは、一定期間のデータをまとめて作る特徴量です。
例えば、直近7日間、直近30日間などの期間を設定し、その範囲の平均、合計、最大値、最小値、標準偏差などを計算します。
| 特徴量 | 意味 |
|---|---|
| rolling_mean_7 | 直近7日間の平均 |
| rolling_sum_7 | 直近7日間の合計 |
| rolling_std_7 | 直近7日間のばらつき |
| rolling_max_30 | 直近30日間の最大値 |
| rolling_min_30 | 直近30日間の最小値 |
ウィンドウ特徴量は、直近の傾向を見るうえで役立ちます。
例えば、日次売上が一時的に上下していても、7日平均を見ると、全体として上昇傾向なのか、横ばいなのかがわかりやすくなります。
また、直近のばらつきが大きくなっている場合、需要の不安定化や販促施策の影響などを確認するきっかけになります。
差分・変化率・カレンダー特徴量も重要
時系列データでは、ラグ特徴量やウィンドウ特徴量に加えて、差分や変化率もよく使われます。
| 特徴量 | 意味 |
|---|---|
| diff_1 | 前日との差 |
| diff_7 | 7日前との差 |
| pct_change_1 | 前日比 |
| pct_change_7 | 7日前比 |
例えば、売上が1,000から1,200に増えた場合、差分は200、変化率は20%です。
差分や変化率を見ることで、単なる水準ではなく、変化の方向や大きさを把握しやすくなります。
また、カレンダー特徴量も重要です。
| 特徴量 | 例 |
|---|---|
| 曜日 | 月曜日、火曜日、土曜日など |
| 月 | 1月、2月、12月など |
| 四半期 | 第1四半期、第2四半期など |
| 月末 | 月末かどうか |
| 祝日 | 祝日かどうか |
| キャンペーン期間 | 販促施策の実施有無 |
ビジネスデータでは、曜日、月末、祝日、キャンペーン期間などが数値に影響することがあります。
そのため、日付からカレンダー特徴量を作ることは、時系列データをビジネス判断に活用するうえで重要です。
Pythonで時系列特徴量を作る簡単な例
ここでは、架空の日次売上データを使って、Pythonで時系列特徴量を作る例を紹介します。
このデータは、考え方を説明するためのサンプルデータです。実際のビジネスデータに適用する場合は、業務課題、データ粒度、欠損値、外れ値、季節性、販促施策、商品特性、意思決定目的を踏まえた分析設計が必要です。
この例では、以下の特徴量を作成しています。
| 特徴量 | 内容 |
|---|---|
| lag_1 | 前日の売上 |
| lag_7 | 7日前の売上 |
| rolling_mean_7 | 直近7日平均 |
| rolling_sum_7 | 直近7日合計 |
| rolling_std_7 | 直近7日のばらつき |
| diff_1 | 前日との差 |
| pct_change_1 | 前日比 |
| day_of_week | 曜日 |
| month | 月 |
| promotion_flag | 販促実施有無 |
このように、元データに「日付」と「売上」しかなかったとしても、時系列の特徴量を追加することで、過去の動き、直近傾向、変化量、曜日や販促の影響を整理しやすくなります。
なお、予測モデルに使う場合は、特徴量を作る時点で将来情報が混ざらないように注意が必要です。
時系列特徴量が活きるビジネス活用例
時系列データの特徴量エンジニアリングは、さまざまな業務で活用できます。
売上予測
日次売上、月次売上、店舗別売上などを対象に、過去売上、直近平均、曜日、販促実施有無などを特徴量として整理します。
これにより、売上の変動要因を把握し、販促計画や売上見通しの検討に活用しやすくなります。
需要予測・在庫管理
商品の出荷数や販売数を時系列データとして扱い、直近需要、前年同週、季節性、キャンペーン情報などを特徴量にします。
需要予測では、単に過去の平均を見るだけでなく、曜日、季節、販促、欠品、価格変更などの業務要因を考慮することが重要です。
販促施策の判断
販促実施前後の売上、問い合わせ数、来店数、ECアクセス数などを比較する際にも、時系列特徴量が役立ちます。
例えば、販促期間中の売上だけでなく、実施前7日平均、実施後7日平均、前年同週比などを見ることで、施策の影響を整理しやすくなります。
問い合わせ件数の予測
コールセンターや問い合わせ窓口では、曜日、月末、キャンペーン、製品リリース、障害発生などによって問い合わせ件数が変動します。
過去の問い合わせ件数、直近平均、曜日、イベント情報を特徴量として整理することで、人員配置や対応体制の検討に役立てやすくなります。
設備保全や異常兆候の把握
設備センサーデータも時系列データです。
振動、温度、電流などについて、ラグ特徴量、移動平均、移動標準偏差、変化率などを作ることで、通常と異なる変化を確認する材料になります。
ただし、設備保全では設備構造、運転条件、故障モード、保全履歴との照合が重要です。
実務で特徴量エンジニアリングを行う際の注意点
時系列データの特徴量エンジニアリングは有効ですが、注意点もあります。
将来情報を使わない
予測に使う場合、予測時点ではわからない将来の情報を特徴量に入れてはいけません。
例えば、明日の売上を予測するのに、明日の実績値を使って計算した移動平均を入れてしまうと、実務では使えない分析になります。
このような問題をデータリーケージと呼びます。
データ粒度を揃える
日次データ、週次データ、月次データが混在している場合、そのままでは分析しにくいことがあります。
売上は日次、広告費は月次、在庫は週次というように粒度が違う場合は、どの粒度で判断したいのかを整理する必要があります。
欠損値や外れ値を確認する
時系列データには、欠損値や外れ値が含まれることがあります。
システム停止、記録漏れ、欠品、臨時休業、異常なキャンペーンなどにより、通常とは異なる値が入る場合があります。
特徴量を作る前に、こうした値の意味を確認することが重要です。
業務文脈を反映する
特徴量は、機械的に作ればよいものではありません。
例えば、販促施策がある業務では、販促フラグやキャンペーン期間が重要になります。小売では曜日や祝日、製造業では稼働日や生産計画、問い合わせ対応では製品リリースや障害発生が影響することがあります。
どの特徴量が有効かは、業務課題や意思決定目的によって変わります。
SCI総合研究所のSHINRAで支援できること
SCI総合研究所株式会社では、戦略的データ活用・意思決定支援コンサルティングサービスとして、SHINRA を提供しています。
SHINRAでは、売上、需要、在庫、問い合わせ件数、販促反応などの時系列データを、経営判断や施策判断に使える形へ整理する支援を行います。
例えば、以下のような課題に対応します。
- 過去データはあるが、予測や判断に活かせていない
- 売上や需要の変動要因を整理したい
- どのような特徴量を作ればよいかわからない
- 需要予測や販促分析を小さく始めたい
- 分析結果を経営会議や施策判断に使えるレポートにしたい
- データ活用を単発分析で終わらせず、継続的な意思決定に活かしたい
時系列データの特徴量エンジニアリングでは、単に過去データを加工するだけでなく、どの特徴量が業務判断に役立つかを整理することが重要です。
SCI総合研究所のSHINRAでは、業務課題の整理、利用可能データの棚卸し、特徴量設計、分析結果のレポート化まで、現場の状況に合わせて支援します。
また、時系列モデルや技術検証をPoCとして進める場合は、研究開発サポート も関連します。
社内向けに時系列データ分析やPython研修を行いたい場合は、調査・研修講師 の活用も検討できます。
データ基盤やシステム連携、セキュアなDX推進まで含めて検討する場合は、ISHIZUE も関連します。
まとめ:時系列特徴量は、過去のデータを意思決定に変えるための準備
時系列データは、売上、需要、在庫、問い合わせ件数、販促反応、設備データなど、さまざまな業務に存在します。
しかし、日付と数値が並んでいるだけでは、予測や意思決定に使いにくい場合があります。
時系列データをビジネス判断に活用するには、以下のような特徴量を整理することが重要です。
- 前日や7日前の値を表すラグ特徴量
- 直近7日平均や30日合計などのウィンドウ特徴量
- 前日差や前週比などの差分・変化率
- 曜日、月、祝日、販促期間などのカレンダー特徴量
- 業務文脈に応じた施策情報やイベント情報
特徴量エンジニアリングは、単に予測モデルのための前処理ではありません。
過去の動き、直近傾向、周期性、変化量を整理し、現場や経営が判断しやすい形へ変換する作業です。
売上、需要、在庫、問い合わせ件数などの時系列データを活用したいが、どのような特徴量を作ればよいかわからない、分析結果を経営判断や販促判断にどうつなげるべきか整理したい場合は、SCI総合研究所の SHINRA をご検討ください。
お問い合わせは、お問い合わせフォーム よりご連絡ください。

