時系列分析

英語名 Time Series Analysis
読み方 タイム シリーズ アナリシス
難易度
所要時間 3〜6時間
提唱者 統計学・計量経済学の分野から発展
目次

ひとことで言うと
#

時間の順に並んだデータ(売上、アクセス数、株価など)をトレンド・季節性・ノイズの3要素に分解し、パターンを理解して将来の値を予測する分析手法。「過去のパターンから未来を読む」ためのデータ分析の王道。

押さえておきたい用語
#

押さえておきたい用語
トレンド(Trend)
データの長期的な増減の方向性のこと。季節変動やノイズを取り除いた「地の実力」を示す。
季節性(Seasonality)
一定の周期(月次・週次・日次)繰り返し現れるパターンのこと。12月の売上ピーク、月曜日のアクセス減少などが該当する。
自己相関(Autocorrelation)
ある時点のデータが過去の自分自身のデータと相関する性質のこと。「先月の売上が高いと今月も高い」といった依存関係。
ARIMA(Autoregressive Integrated Moving Average)
自己回帰・差分・移動平均を組み合わせた時系列予測モデルを指す。季節性がないデータの予測に使われる定番手法。
Prophet(プロフェット)
Meta(旧Facebook)が開発したビジネスデータ向けの時系列予測ツールである。季節性・祝日効果を自動検出し、直感的に使える。

時系列分析の全体像
#

時系列分析の構造:可視化→分解→モデリング→検証と改善
時系列データ(まず可視化する)トレンド(右肩上がり)+ 季節変動(波のパターン)+ ノイズ(不規則な揺れ)↓ 3要素に分解トレンド長期的な方向性+季節性繰り返す周期パターン+残差(ノイズ)説明できない変動データ特性に合ったモデルを選択予測モデル移動平均シンプル・短期向けSARIMA季節性あり・中期向けProphet汎用・初心者向け※信頼区間をセットで提示する検証と継続的改善予測 vs 実績を比較 → モデル再学習 → 精度向上
時系列分析の進め方フロー
1
データ可視化
折れ線グラフでトレンド・季節性・異常値を確認
2
要素分解
トレンド・季節性・残差の3成分に分離する
3
モデル構築
データ特性に合った予測手法を選んで適用
検証・改善
予測と実績を比較しモデルを再学習する改善サイクル

こんな悩みに効く
#

  • 「来月の売上はいくらになりそうか?」と聞かれても、勘でしか答えられない
  • 売上が下がっているのが一時的なのか、構造的な問題なのか判断できない
  • 過去データはあるのに、予測に活用できていない

基本の使い方
#

ステップ1: 時系列データを可視化する

まずデータを折れ線グラフで可視化して、全体像を把握する。

確認するポイント:

  • トレンド: 長期的に増加・減少・横ばいのどれか
  • 季節性: 毎年・毎月・毎週繰り返すパターンがあるか
  • 異常値: 突発的な急増・急減がないか
  • 構造変化: ある時点を境にパターンが変わっていないか

ポイント: 最低でも2年分のデータを可視化する。短すぎると季節性とトレンドを区別できない。

ステップ2: 時系列を要素分解する

データを3つの要素に分解する。

  • トレンド成分: 長期的な上昇・下降の方向性
  • 季節成分: 周期的に繰り返すパターン
  • 残差(ノイズ): トレンドと季節性で説明できない変動

分解方法:

  • 加法モデル: データ = トレンド + 季節 + 残差(変動幅が一定の場合)
  • 乗法モデル: データ = トレンド × 季節 × 残差(変動幅がトレンドに比例する場合)

ツール: Pythonのstatsmodels(STL分解)、ExcelのTREND関数+移動平均。

ステップ3: 予測モデルを構築する

データの特性に合った予測モデルを選んで構築する。

手法特徴適した場面
移動平均最もシンプル短期予測、ノイズの平滑化
指数平滑法直近のデータを重視トレンドや季節性が緩やかな場合
ARIMA自己回帰+移動平均の統合季節性のないデータの中期予測
SARIMAARIMAに季節性を追加季節パターンのあるデータ
ProphetFacebook開発、自動で季節性検出ビジネスデータの汎用予測

初心者におすすめ: Prophet(直感的に使え、祝日効果も考慮可能)。

ステップ4: 予測を検証し、継続的に改善する

予測の精度を検証し、改善サイクルを回す

検証方法:

  • ホールドアウト検証: データの最後の数ヶ月を「答え合わせ用」に取っておき、モデルの予測と比較
  • 精度指標: MAPE(平均絶対パーセント誤差)が10%以下なら実用的

改善のサイクル:

  1. 予測値と実績値を毎月比較する
  2. 大きくズレた月の原因を分析する(外部要因?モデルの限界?)
  3. 新しいデータを取り込んでモデルを再学習する

ポイント: 予測は100%当たるものではない。信頼区間をセットで提示すること。

具体例
#

例1:小売チェーンが月次売上予測で仕入れを最適化する

状況: 全国30店舗の小売チェーン。来期の月別売上予測を精度よく行い、仕入れ計画に活かしたい。これまでは前年同月比に経験値を加味した「勘」で予測していた。

データ: 過去3年分(36ヶ月)の月次売上データ

要素分解の結果:

  • トレンド: 年率5%の成長(右肩上がり)
  • 季節性: 12月がピーク(指数140%)、2月が底(指数75%)
  • 残差: 概ね小さいが、2024年10月に異常値(近隣に競合出店)

Prophetモデルによる予測(来期6ヶ月):

予測売上95%信頼区間
4月2.1億円1.9〜2.3億円
5月2.0億円1.8〜2.2億円
6月1.8億円1.6〜2.0億円
7月2.2億円2.0〜2.5億円
8月2.0億円1.7〜2.2億円
9月2.1億円1.8〜2.3億円

精度検証(過去6ヶ月のバックテスト): MAPE = 7.2%(実用に十分な精度)

月別の予測売上に基づいて仕入れ量を調整。6月の閑散期は仕入れを15%削減し、在庫回転率を改善。欠品率が8%→3%に改善、在庫廃棄ロスが年間600万円削減。「勘」から「データ」への転換で、仕入れの精度が劇的に向上した。

例2:SaaS企業がMRR予測でリソース計画を立てる

状況: 月額課金のBtoB SaaS企業。MRR(月次経常収益)が1,800万円。急成長中で「来四半期にエンジニアを何人採用すべきか」の判断材料としてMRR予測を求められている。

データ: 過去24ヶ月のMRRデータ+新規契約数・解約数の内訳

要素分解の結果:

  • トレンド: 月率4.2%の成長(複利で年率64%)
  • 季節性: 3月と12月に契約増加(企業の予算消化時期)
  • 残差: 2025年4月に急落(大口顧客1社の解約、MRR120万円分)

SARIMAモデルによる予測:

予測MRR95%信頼区間前月比
4月1,875万円1,720〜2,030万円+4.2%
5月1,954万円1,760〜2,148万円+4.2%
6月2,036万円1,800〜2,272万円+4.2%

アクション:

  • MRR 2,000万円突破は6月の見込み → サーバー増強を5月に前倒し
  • 信頼区間の下限(1,800万円)でもキャッシュフローが赤字にならないことを確認
  • エンジニア2名の採用を承認(MRR成長が下限でもROI確保可能)

では、この分析で何が変わったか。成長率4.2%/月が安定して続いていることをデータで示し、経営陣の採用判断を後押しした。信頼区間の下限シナリオでも投資回収可能なことを証明したことで、「いける」ではなく「万が一でも大丈夫」という堅実な意思決定ができた。

例3:地方の温泉旅館が来客数予測でシフトを最適化する

状況: 客室15室の温泉旅館。スタッフ12名のシフト管理に悩んでいる。繁忙期に人が足りず、閑散期に人が余る。スタッフの残業代が年間320万円。

データ: 過去3年分の日別宿泊者数データ

要素分解の結果:

  • トレンド: 年率2%の微増
  • 季節性(月別指数):
    • ピーク: 8月(155%)、1月(135%: 正月)、11月(125%: 紅葉)
    • 底: 6月(65%)、2月(72%)
  • 曜日効果: 土曜日の稼働率が平日の2.8倍
  • 残差: GW・盆・年末年始の祝日効果が大きい

Prophetモデルの活用(祝日効果を組み込み):

  • 祝日データ(GW、盆、年末年始、連休)をモデルに追加
  • 予測精度: MAPE 8.5%(日別予測としては良好)

シフト最適化:

期間従来のシフト予測ベースのシフト変化
繁忙期(8月)12名フル稼働+残業14名(短期バイト2名追加)残業ゼロ
閑散期(6月)12名(手持ち時間多い)8名(有給取得推奨)人件費15%削減
GW・盆急遽呼び出し2ヶ月前から計画配置呼び出しゼロ

残業代は年間320万円→85万円に削減(73%減)。繁忙期のサービス品質が向上し(スタッフに余裕ができた)、口コミ評価が**★4.0→★4.3**に改善。コスト削減とサービス向上の両立――これが「先を読む」ことの価値だった。

やりがちな失敗パターン
#

  1. データ量が不足した状態で予測する — 6ヶ月分のデータでは季節性を捉えられない。季節性があるデータは最低2年分、できれば3年分のデータが必要
  2. 外部要因を考慮しない — 時系列分析は「過去のパターンが未来も続く」ことが前提。競合参入、法改正、パンデミックなどの構造変化があると予測が大きく外れる。外部要因の影響は別途モデルに組み込む
  3. 点予測だけを報告する — 「来月の売上は2億円です」ではなく、**「2億円(95%信頼区間: 1.8〜2.2億円)」**と幅で報告する。予測の不確実性を伝えないと、過度な期待や誤った判断を招く
  4. モデルを放置して更新しない — ビジネス環境は変化する。最低でも四半期に1回はモデルを再学習し、予測精度をモニタリングする。精度が悪化したらモデルの見直しが必要

まとめ
#

時系列分析は、時間に沿ったデータの変動パターンを分解・理解し、将来の値を予測する分析手法。トレンド・季節性・ノイズに分解することで、データの構造を深く理解できる。予測は信頼区間とセットで提示し、定期的にモデルを更新すること。まずは自社の月次売上データを折れ線グラフで可視化し、トレンドと季節性のパターンを確認するところから始めよう。