【要約】需要予測における打ち切り問題 ④実装編・既存商品 ─ EM Unconstraining と NumPyro によるベイズ推論 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
小売業の需要予測において、在庫不足により真の需要が観測できない「打ち切り問題」が発生する。需要がキャパシティを超えていても、観測される売上は上限値に制限されてしまう。これにより、以下の課題が生じる。
- ・OLS(最小二乗法)では、打ち切りデータが観測値を引き下げ、需要を過小評価する。
- ・打ち切りが発生する期間の真の需要が不明となり、トレンドや季節性の推定にバイアスがかかる。
- ・既存商品は、大部分が正常で一部が打ち切りという特有の構造を持つため、単純な補完では不十分である。
// Approach
筆者は、計算速度を重視する点推定と、不確実性を評価するベイズ推論の2つのアプローチを提案している。用途に応じて、計算コストと情報の詳細度を使い分けることが可能である。
- ・EM Unconstraining: E-stepで条件付き期待値を用いて欠損値を補完し、M-stepでパラメータを再推定する反復計算を行う。
- ・NumPyroによるベイズモデル: トレンド、季節性、AR(1)を組み込み、対数生存関数を用いて打ち切り尤度を直接モデル化する。
- ・回帰版EM: トレンドや季節性を説明変数として組み込み、日次の変動を考慮した補正を行う。
// Result
合成データを用いた検証により、手法ごとの特性と精度が明らかになった。OLSと比較して、EMおよびベイズ手法は真のトレンド係数を正確に捉えることができる。
- ・EM Unconstrainingは、高速に打ち切りバイアスを除去し、点推定として高い精度を示す。
- ・NumPyroによるベイズ推論は、打ち切り期における需要の信用区間を算出できる。
- ・実務においては、まずEMで迅速に診断し、運用が軌道に乗った後にベイズへ移行する戦略が効果的である。
Senior Engineer Insight
> 実務投入には、打ち切り判定の精度が極めて重要だ。POSデータだけでなく、在庫スナップショットとの突合が不可欠である。計算コストの観点から、まずはEMでプロトタイプを作り、精度向上の必要性に応じてベイズへ移行する設計が合理的だ。また、気温などの外生変数を組み込み、異常値と打ち切りを分離する設計も検討すべきである。