mcpField
A
algo-forecast-prophet

algo-forecast-prophet

github.com/asgard-ai-platformデータ・データベース24348 回インストール21 週間前に更新
リポジトリ

algo-forecast-prophet について

Prophetでビジネス時系列を予測するスキルです。季節性や祝日パターンを持つ日次・週次指標を対象とし、データ準備、モデル適合、検証、要素別の予測を扱います。

主な機能

  1. 01トレンド・季節性・祝日のモデル化
  2. 02線形またはロジスティック成長の選択
  3. 03欠損データと外れ値への対応
  4. 04ローリング方式の交差検証
  5. 05予測要素の分解表示

活用シーン

  1. 01祝日効果を含む日次売上の予測
  2. 02季節性のある週次トラフィックの推定
  3. 03MAPEとRMSEによる予測の検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/asgard-ai-platform/skills --skill algo-forecast-prophet

インストール後、Claude Code で/algo-forecast-prophetを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

examples/
sample_scenario.md
references/
prophet-cv.md
prophet-tuning.md

詳細

Prophet による予測

概要

Prophet(Meta)は、時系列をトレンド+季節性+祝日+誤差に分解します。Stan で適合させる加法モデル(または乗法モデル)を使用します。欠損データ、外れ値、祝日の影響を標準で処理します。日次/週次の粒度のビジネス時系列向けに設計されています。

使用する場面

適用条件:

  • 日次/週次の頻度でビジネス指標(売上、トラフィック、エンゲージメント)を予測する場合
  • 季節性のパターンが強く、既知の祝日の影響があるデータ
  • 時系列に関する深い専門知識がなくても、迅速に妥当な予測が必要な場合

使用しない場面:

  • 高頻度データ(1時間未満)の場合 — Prophet は日次以上のデータ向けに設計されています
  • 因果関係や説明を目的とするモデルが必要な場合(Prophet は記述的モデルです)
  • 時系列が非常に短い場合(季節周期が 2 回未満)

アルゴリズム

IRON LAW: Prophet Is an Additive Regression Model, NOT Classical Time Series
y(t) = g(t) + s(t) + h(t) + ε(t)
- g(t): piecewise linear or logistic trend with automatic changepoints
- s(t): Fourier series for yearly/weekly/daily seasonality
- h(t): user-specified holiday effects
Prophet does NOT model autocorrelation in residuals. If residuals are
autocorrelated, the uncertainty intervals will be too narrow.
フェーズ 1:入力の検証

列 ds(日付スタンプ)と y(指標)を含む DataFrame を準備します。利用可能な場合は、回帰変数の列を追加します。国の祝日、カスタム祝日、成長タイプを指定します。 ゲート: データが適切にフォーマットされ、季節周期が最低 2 回分あること。

フェーズ 2:コアアルゴリズム
  1. 成長モデルを選択します:'linear'(デフォルト)または 'logistic'(上限と下限を指定)
  2. 季節性を設定します:年次(デフォルト)、週次(デフォルト)、カスタム(例:月次)
  3. 祝日を追加します:国の組み込み祝日+カスタムイベント(プロモーション、ローンチ)
  4. モデルを適合させます:m = Prophet(); m.fit(df)
  5. 未来の DataFrame を生成して予測します:m.predict(future)
フェーズ 3:検証

確認項目:予測の各要素(トレンド、季節性、祝日)が直感に合っていること。ローリングウィンドウを用いて、Prophet 組み込みの cross_validation() で交差検証します。MAPE、RMSE を評価します。 ゲート: MAPE が用途に照らして許容範囲内であり、各要素を目視で確認して問題がないこと。

フェーズ 4:出力

各要素に分解された予測を返します。

出力形式

{
  "forecasts": [{"ds": "2025-04-15", "yhat": 1200, "yhat_lower": 1050, "yhat_upper": 1350}],
  "components": {"trend": "upward_3pct", "yearly_seasonality": "peak_in_december", "weekly_seasonality": "low_on_weekends"},
  "metadata": {"mape": 0.08, "training_days": 730, "forecast_days": 90}
}

例

入出力サンプル

入力: クリスマスの急増と夏季の落ち込みがある、2 年分の日次ウェブサイトトラフィック 期待される結果: 上昇トレンド、週次パターン(平日 > 週末)、年次パターン(クリスマスの急増、夏季の落ち込み)を捉えた予測。

エッジケース
入力期待される結果理由
欠損日が多いProphet が標準で処理ARIMA と異なり、補完が不要
急なトレンド変化変化点を自動検出ARIMA に対する Prophet の主な特長
乗法的な季節性seasonality_mode='multiplicative' を設定季節変動の振幅がトレンドとともに大きくなる場合

注意点

  • デフォルトの変化点感度:Prophet はトレンドの変化を過剰または過少に検出する場合があります。changepoint_prior_scale(デフォルトは 0.05)を調整します。値を大きくすると柔軟性が高まり、小さくすると滑らかになります。
  • 平坦な予測:トレンドの変化点が保守的すぎると、長期予測が非現実的なほど平坦になることがあります。柔軟性を高めるか、成長の上限を指定してください。
  • 祝日の影響には指定が必要:Prophet は祝日を自動的に検出しません。祝日 DataFrame を指定する必要があります。指定されていない祝日はモデル化されません。
  • 因果推論には不向き:Prophet はパターンを見つけますが、その理由は説明しません。回帰変数を追加しても、示されるのは相関であり、因果関係ではありません。
  • 不確実性区間:残差の自己相関ではなく、過去のトレンド変化の分散に基づきます。残差に構造がある場合、区間が狭すぎることがあります。

参考資料

  • Prophet のハイパーパラメーター調整ガイドについては、references/prophet-tuning.md を参照してください
  • 交差検証のベストプラクティスについては、references/prophet-cv.md を参照してください

コメント