algo-forecast-ensemble について
algo-forecast-ensembleは、複数モデルの予測を組み合わせるスキルで、単純平均と検証を重視します。リスク低減と堅牢性が重要な予測ワークフローを対象とします。
主な機能
- 01多様な予測の単純平均
- 02誤差逆数による重み付け
- 03メタモデルによるスタッキング
- 04個別モデルとの比較検証
- 05各モデルの寄与の報告
活用シーン
- 01異なる種類のモデル予測の統合
- 02本番予測パイプラインのリスク低減
- 03アンサンブルと個別モデルの誤差比較
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ asgard-ai-platform/ skills --skill algo-forecast-ensembleインストール後、Claude Code で/algo-forecast-ensembleを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
examples/sample_scenario.mdreferences/combination-survey.mdstacking.md詳細
アンサンブル予測
概要
アンサンブル予測では、複数のモデルの予測を組み合わせて、分散を抑え、精度を高めます。多様なモデルを3〜5個使った単純平均は、最良の単独モデルを上回ることがよくあります。手法には、等重み平均、誤差の逆数による重み付け、メタ学習器を用いたスタッキングがあります。「予測結合のパズル」が示すように、単純平均に勝つのは容易ではありません。
使用するタイミング
使用条件:
- 複数の予測モデルが利用可能で、性能が同程度である
- 予測リスクの低減が、精度の最大化よりも重要である
- モデル障害に強い本番パイプラインを構築する
使用しないタイミング:
- 1つのモデルが他のすべてを明らかに上回る場合(そのモデルだけを使用してください)
- 計算予算の都合でモデルを1つしか使えない場合
アルゴリズム
IRON LAW: Simple Average Often Beats Complex Combination
The "forecast combination puzzle" (Stock & Watson, 2004): equal-weight
averaging of diverse models frequently outperforms sophisticated
weighting schemes. This is because weight estimation introduces noise
that offsets the theoretical gain. Start with simple average and only
move to weighted combination if you have abundant validation data.
フェーズ1:入力の検証
3つ以上の多様なモデル(例:ARIMA、ETS、Prophet、ML ベース)から予測を生成します。モデルが本当に多様であること(前提やアプローチが異なること)を確認してください。 ゲート: 3つ以上のモデル予測が利用可能であり、モデルごとに手法が異なります。
フェーズ2:コアアルゴリズム
単純平均: ŷ_ensemble = (1/M) × Σ ŷ_m
誤差の逆数による重み付け: w_m = (1/MSE_m) / Σ(1/MSE_j)、ŷ_ensemble = Σ w_m × ŷ_m
スタッキング: 交差検証済みの個々のモデル予測から最適な重みを学習するメタモデル(線形回帰)をトレーニングします。
フェーズ3:検証
ホールドアウトデータで、アンサンブルと個々のモデルを比較します。アンサンブルは、平均誤差と最大誤差の両方が小さく、より堅牢である必要があります。 ゲート: アンサンブルの RMSE ≤ 最良の単独モデルの RMSE。
フェーズ4:出力
アンサンブル予測を、構成モデルの寄与度とともに返します。
出力形式
{
"ensemble_forecast": [{"period": "2025-04", "forecast": 1200, "lower_95": 1050, "upper_95": 1350}],
"model_forecasts": {"arima": 1180, "prophet": 1220, "ets": 1200},
"weights": {"arima": 0.35, "prophet": 0.30, "ets": 0.35},
"metadata": {"method": "inverse_error_weighted", "ensemble_rmse": 42, "best_individual_rmse": 48}
}
例
入出力の例
入力: 来月の売上予測が、ARIMA=1180、Prophet=1220、ETS=1200 期待値: 単純平均 = 1200。ARIMA が過去に最も優れている(MSE が最も低い)場合、加重平均は1180に近づきます。
エッジケース
| 入力 | 期待値 | 理由 |
|---|---|---|
| すべてのモデルが一致 | アンサンブル = 個々のモデル | 合意が得られており、信頼度が高い |
| モデル間で大きく意見が分かれる | アンサンブル = 妥協値、CI が広い | 不確実性が高いため、レビュー対象としてフラグを立てる |
| 1つのモデルが外れ値 | 平均により外れ値の影響が弱まる | アンサンブルの堅牢性による利点 |
注意点
- 多様性が重要です: 5種類の ARIMA を組み合わせても、効果はほとんどありません。根本的に異なるアプローチ(統計的手法+ML+判断に基づく手法)を組み合わせてください。
- 重みの不安定性: 過去のデータから推定した最適な重みが、将来も最適とは限りません。単純平均ならこの不安定性を避けられます。
- 誤差の相関: モデルの誤差に相関がある場合(多くの場合、相関があります)、アンサンブルによる改善は限られます。誤差に相関のないモデルを探してください。
- 信頼区間: 点予測を組み合わせるのは簡単です。予測区間を適切に組み合わせるには、誤差の相関構造を把握する必要があります。
- 過剰設計のリスク: 安定していて十分に理解されている系列では、適切に調整された単一モデルがアンサンブルを上回る場合があります。アンサンブルが特に有効なのは、不確実性や変動性の高い系列です。
参考資料
- 予測結合手法のサーベイについては、
references/combination-survey.mdを参照してください - スタッキングのメタ学習器の実装については、
references/stacking.mdを参照してください