2026-04-30·実装·⏱ 約 4 分
時系列予測 入門 ─ 古典手法から Prophet・深層学習まで
売上予測・需要予測・株価予測。ARIMA・指数平滑化から、Prophet・LightGBM・Temporal Fusion Transformer までの主要手法を実用視点で。
時系列予測 は売上・需要・在庫・株価・気象など、ほぼあらゆる業界で必要とされる ML タスク。一般的な予測問題と違い、時間順序を保つことが鉄則です。
時系列の 3 要素
- トレンド: 長期的な上昇・下降
- 季節性: 周期的なパターン(年・週・日)
- 残差: トレンド・季節性で説明できないノイズ
古典的手法
ARIMA
AR(自己回帰) + I(差分) + MA(移動平均)の組合せ。古いが理論的に整理されており、説明性が高い。
statsmodels で ARIMA
from statsmodels.tsa.arima.model import ARIMA
model = ARIMA(y_train, order=(2, 1, 2)) # (p, d, q)
fit = model.fit()
forecast = fit.forecast(steps=30)指数平滑化(Holt-Winters)
最近のデータほど重み付けして平滑化。トレンド・季節性も扱える。
Prophet ─ Facebook 製の万能ツール
祝日効果・季節性・変化点を GUI レベルでパラメータ化 できる。ビジネス用途で爆発的に普及。
Prophet 5 行
from prophet import Prophet
import pandas as pd
df = pd.DataFrame({'ds': dates, 'y': sales})
m = Prophet(yearly_seasonality=True, weekly_seasonality=True)
m.fit(df)
future = m.make_future_dataframe(periods=90)
forecast = m.predict(future)LightGBM ─ Kaggle 王者
ラグ特徴量(過去 N 日)+ 集計特徴量(過去 7 日平均など)を作って GBDT に渡す。実用最強の選択肢の 1 つ。
ラグ特徴量の作り方
for lag in [1, 7, 14, 30]:
df[f'lag_{lag}'] = df['y'].shift(lag)
for window in [7, 14, 30]:
df[f'roll_mean_{window}'] = df['y'].rolling(window).mean()
df[f'roll_std_{window}'] = df['y'].rolling(window).std()深層学習 ─ TFT ・ N-BEATS
- LSTM / GRU: 古典的 RNN、長期依存に弱い
- Temporal Fusion Transformer (TFT): 解釈性 + 性能
- N-BEATS: トレンド + 季節性を分解する DL
- Informer / Autoformer: 長期予測に特化した Transformer 派生
- TimeGPT: LLM 風時系列基盤モデル(Nixtla)
時系列クロスバリデーション
通常の K-Fold は 未来データで学習 → 過去データで予測 という時間漏れを起こす。代わりに Walk-Forward:
TimeSeriesSplit
from sklearn.model_selection import TimeSeriesSplit
tscv = TimeSeriesSplit(n_splits=5)
for train_idx, val_idx in tscv.split(X):
X_tr, X_val = X[train_idx], X[val_idx]
y_tr, y_val = y[train_idx], y[val_idx]
# 学習・評価評価指標
- MAE / RMSE: 標準
- MAPE: % 表現で経営層に伝えやすい(0 に近い値で破綻)
- SMAPE: MAPE の対称版、極端な値に頑健
- MASE: 単純予測(Naive)からの改善度
- Pinball Loss: 分位点予測の評価
学習リソース
- [統計検定 準 1 級 教科書](/textbook/grade-pre1) ─ 時系列の章
- [scikit-learn 入門](/blog/sklearn-introduction)
- [Pandas Tips](/blog/pandas-tips-for-ml) ─ 日付操作
- [ベイズ最適化](/blog/bayesian-optimization)
Related Articles
関連記事
- 2026-04-30実装OpenAI API 実装入門 ─ Chat / Embeddings / Function CallingOpenAI API を使ったプロダクション開発の基礎。Chat Completion・Embedding・Function Calling・ストリーミング・コスト管理まで実装パターンを網羅。
- 2026-04-30実装Vercel で AI アプリをデプロイする ─ Next.js + AI SDK 入門Vercel にデプロイする最短ルート。Next.js の AI SDK + AI Gateway で OpenAI/Claude を統合し、ストリーミングチャット UI を 1 時間で公開する手順。
- 2026-04-30実装Streamlit で 1 時間で ML デモアプリ ─ 転職に効くポートフォリオPython だけで動くインタラクティブな ML デモを Streamlit で作る方法。データ可視化・ファイルアップロード・モデル予測 UI までの最小実装。