ダイナミックプライシングエンジン
Reinforcement Learning
Pricing
Economics
Python
計量経済学から強化学習へのダイナミックプライシング
背景と課題
ビジネス課題:コンテキストと需要に基づいてリアルタイムで価格を最適化するには?
UberとLyftが使用するサージプライシングは、データサイエンスが経済学と出会う魅力的なケースです。このプロジェクトでは、古典的な計量経済学から強化学習まで、さまざまなアプローチを段階的に探索します。
データセット
Uber & Lyftデータセット(Kaggle):
- ボストンで約70万件の乗車
- 期間:2018年11月
- 変数:価格、距離、天候、時間、曜日、サージ乗数
- 2社:UberとLyft(比較用)
段階的アプローチ
このプロジェクトは方法論的複雑さが増す4つのノートブックで構成されています:
1. EDA&ストーリーテリング
価格パターンを理解するためのデータ探索:
- ピーク時間帯(午前8-9時、午後5-7時)に価格が高い
- 天候(雨、雪)が価格を大幅に上昇させる
- LyftとUberは若干異なる価格戦略を持つ
2. ベイズ価格弾力性
価格の関数としての需要の計量経済モデリング:
- 弾力性 ~ -0.8:価格10%上昇で需要8%減少
- 需要は比較的非弾力的(絶対値 < 1)
- これがサージプライシングを経済的に正当化
3. コンテキストバンディット(トンプソンサンプリング)
探索/活用問題:収益を最大化しながら新しい価格をテストするには?
探索と活用を自動的にバランスし、最適価格に収束し、コンテキスト変化に適応。
4. 強化学習(Q学習)
価格ポリシーを学習するエージェントによる完全なアプローチ:
状態:(時間、曜日、天候、需要) 行動:価格レベル(0.8x、1.0x、1.2x、1.5x、2.0x) 報酬:収益 = 価格 × 購入確率
結果
アプローチの比較
| アプローチ | 利点 | 欠点 |
|---|---|---|
| 固定弾力性 | シンプル、解釈可能 | コンテキストを無視 |
| トンプソンサンプリング | 適応的、理論的に最適 | 汎化なし |
| Q学習 | 完全なポリシーを学習 | 大量のデータが必要 |
学習されたポリシー
Q学習エージェントは以下のポリシーを学習:
- ピーク時に価格を上昇(サージ1.5x-2.0x)
- 通常期間は価格を維持(1.0x)
- 閑散期に需要を刺激するため若干低下(0.8x-1.0x)
テクノロジー
| コンポーネント | テクノロジー |
|---|---|
| データ処理 | pandas、numpy |
| 可視化 | matplotlib、seaborn、plotly |
| ベイズモデリング | PyMC、ArviZ |
| 機械学習 | scikit-learn |
| ダッシュボード | Streamlit |
学び
- 価格の経済学:弾力性、消費者余剰、価格差別
- バンディットのマスター:探索/活用のトレードオフ
- RLの実装:Q学習、状態、行動、報酬
- 方法論的進行:シンプルから複雑へ