時系列予測の手法選定は「データ量」「季節性の強さ」「解釈性の必要性」の3軸で決まります。データが少なく解釈性重視ならARIMA、季節性が強く少ないチューニングで動かしたいならProphet、大量のデータと多変量ならLightGBMやLSTM、zero-shot予測ならTimesFMなどのFoundation Modelが選択肢です。まずProphetで手早く試し、必要に応じて高度化するのが実務的な王道です。
時系列予測とは
時系列予測とは、時間とともに変化するデータの将来値を推定するタスクです。売上予測、需要予測、株価予測、気象予報、電力需要予測など、応用範囲は極めて広いです。時系列データには通常のテーブルデータにはない特殊性があり、データ点同士に時間的順序の依存関係があるため、単純な機械学習手法では捉えきれない特徴を考慮する必要があります。
時系列データを分析する際の基本概念は、トレンド(長期的な傾向)、季節性(周期的な変動)、循環性(不規則な長期変動)、ノイズ(ランダムな変動)の4要素に分解することです。Prophet等のライブラリはこの分解を自動的に行うため、少ないチューニングで良質な予測を出せます。
【時系列データの構成要素分解】
[実測値] = [トレンド] + [季節性] + [循環性] + [ノイズ]
^ ^ ^ ^
| | | |
長期的な傾向 周期的変動 不規則変動 予測不能な部分
例: 月次売上
実測値 → 年率5%成長 + 12月ピーク + 景気循環 + 残差
(トレンド) (季節性) (循環性) (ノイズ)
※ モデルの本質は、ノイズ以外の3要素を正しく捉えること。
統計モデル: ARIMA・SARIMA
ARIMA(Autoregressive Integrated Moving Average)は、時系列予測の古典的かつ強力な手法です。自己回帰(AR)、差分(I)、移動平均(MA)の3要素を組み合わせており、比較的少量のデータでも良い結果を出せます。SARIMAはこれに季節性(Seasonal)成分を加えた拡張版で、月次・週次の強い周期性を持つデータに適しています。解釈性が高く、係数を見れば時系列の挙動を把握できるのが大きな利点です。
以下は、statsmodelsを使ったARIMAモデル構築の最小例です。実務ではパラメータ(p, d, q)のグリッドサーチやAIC最小化による自動選定を組み合わせます。
import pandas as pd
from statsmodels.tsa.arima.model import ARIMA
from sklearn.metrics import mean_absolute_error
# データ読み込み
df = pd.read_csv("monthly_sales.csv", parse_dates=["date"], index_col="date")
# 学習・評価用に分割
train = df[:-12]
test = df[-12:]
# ARIMAモデル(p=1, d=1, q=1)
model = ARIMA(train, order=(1, 1, 1))
fitted = model.fit()
# 12ヶ月先を予測
forecast = fitted.forecast(steps=12)
mae = mean_absolute_error(test, forecast)
print(f"MAE: {mae:.2f}")
print(fitted.summary())
ML/DLベースの手法
機械学習・深層学習ベースの時系列予測は、多変量データや非線形パターンに強みを持ちます。Prophetは多くの企業で愛用されているライブラリで、トレンド・季節性・祝日効果を自動分解し、少ないチューニングで運用できるのが魅力です。LightGBMは特徴量エンジニアリングを組み合わせることで高精度な予測が可能で、勾配ブースティングの汎用性がそのまま時系列にも通用します。
深層学習系ではLSTMやTransformer系が有名ですが、データ量と調整コストの観点から、実務では勾配ブースティングの方が好まれる場面が多いです。近年はTimesFMやChronosといった時系列Foundation Modelが登場し、zero-shot予測(学習なしでの予測)も可能になっています。
| 手法 | 精度 | 解釈性 | データ量要件 | 多変量対応 | 実装難易度 |
|---|---|---|---|---|---|
| ARIMA/SARIMA | 中 | 高 | 少量OK | △(外因変数のみ) | 中 |
| Prophet | 中〜高 | 中 | 中量 | ○(Regressor) | 低 |
| LightGBM | 高 | 中 | 中量〜大量 | ◎ | 中 |
| LSTM | 高 | 低 | 大量 | ◎ | 高 |
| Transformer | 高 | 低 | 大量 | ◎ | 高 |
| TimesFM/Chronos | 高 | 低 | zero-shotOK | △〜○ | 中 |
LLMベースの時系列予測
時系列Foundation Modelは、大量の時系列データで事前学習されたモデルで、未知のデータに対してもzero-shotで予測ができます。Google ResearchのTimesFM、AmazonのChronos、MetaのLag-Llamaなどが代表例です。これらは従来のモデルとは異なり、「学習データを用意しなくても予測ができる」という革命的な特性を持ちます。ただし、特定ドメインに特化したモデルに対しては精度が劣る場合もあり、補完的な活用が推奨されます。
| 項目 | 従来手法(ARIMA・Prophet等) | LLMベース(TimesFM等) | 使い分け基準 |
|---|---|---|---|
| 学習データ要否 | 必須 | 不要(zero-shot可) | データ不足ならLLMベース |
| ドメイン適応性 | 高(個別学習) | 中(汎用的) | 精度重視なら従来手法 |
| セットアップ時間 | 中〜長 | 短 | スピード重視ならLLMベース |
| 計算コスト | 低〜中 | 中〜高 | 大量予測なら従来手法 |
| 解釈性 | 高 | 低 | 説明責任があれば従来手法 |
| 多変量対応 | ◎ | 発展中 | 多変量なら従来手法有利 |
LLMベースモデルは、データが少ない新規事業の立ち上げ時や、多数の時系列を一括処理する場面で特に有用です。MLパイプライン設計も併せてご参照ください。
手法選定のガイドライン
時系列予測の手法選定は、データの特性によって実務的な目安が決まります。データが数百点未満ならARIMA、数千点で季節性があるならProphet、大量データで多変量ならLightGBM、データが全くない新規事業ならLLMベース、という大まかな方針が実務の定番です。最初からベストな選択を目指すよりも、シンプルな手法で早くベースラインを確立し、必要な精度を上乗せしていくアプローチが安全です。
以下は、Prophetを使った需要予測の実装例です。Prophetは週次・月次・年次の季節性を自動検知し、祝日効果も加味できるため、少ないチューニングで実用レベルの予測が可能です。
import pandas as pd
from prophet import Prophet
# データ読み込み(Prophet用にカラム名をds, yに変換)
df = pd.read_csv("daily_demand.csv")
df = df.rename(columns={"date": "ds", "demand": "y"})
# モデル作成と学習
model = Prophet(
yearly_seasonality=True,
weekly_seasonality=True,
daily_seasonality=False,
changepoint_prior_scale=0.05,
)
model.add_country_holidays(country_name="JP")
model.fit(df)
# 90日先まで予測
future = model.make_future_dataframe(periods=90)
forecast = model.predict(future)
# 結果確認
print(forecast[["ds", "yhat", "yhat_lower", "yhat_upper"]].tail(10))
fig = model.plot(forecast)
fig.savefig("forecast.png")
Prophetは日本の祝日効果も標準で対応しているため、国内のビジネス需要予測で特に使いやすいです。精度評価には予測分析で紹介されている指標を併用してください。
まとめ
時系列予測は、従来の統計モデルから最新のLLMベースまで多様な選択肢がありますが、大半の実務ケースではProphetやLightGBMで十分な精度が得られます。まずはProphetで素早くベースラインを作り、必要に応じて勾配ブースティングや深層学習、Foundation Modelに進化させるアプローチが合理的です。手法選定に時間をかけすぎるよりも、シンプルなモデルで早く実運用に入り、継続的に改善する姿勢が成功の鍵になります。MLOps基礎やモデルドリフト検知の記事もあわせてご覧ください。
よくある質問
Q. 時系列予測に最適な手法は何ですか。
A. データ量が少なくシンプルな構造ならARIMA、季節性が強い場合はProphet、複雑なパターンにはLightGBMやLSTMが適しています。まずProphetで試すのが効率的で、多くの実務ケースではこれで十分な精度が得られます。
Q. Prophetとは何ですか。
A. Meta(旧Facebook)が開発したオープンソースの時系列予測ライブラリです。トレンド・季節性・祝日効果を自動分解し、少ないチューニングで良い精度が出せます。日本の祝日にも標準対応しており、国内企業での活用実績が豊富です。
Q. LLMで時系列予測はできますか。
A. TimesFMやChronosなどの時系列Foundation Modelが登場しており、zero-shotでの予測が可能です。ただし精度は専用モデルに劣る場合もあり、補完的な活用が推奨されます。データが全くない新規事業や、多数の時系列を一括処理する場面で特に有用です。