Playground 4:消費者異質性と合併の実験室

計量経済学II(ブラウザ上でRが動きます)

作者

Kei Ikegami

重要このページの使い方
  • このページのRコードは、あなたのブラウザの中で動いている(WebAssembly + webR)。インストールは一切不要。
  • 初回だけ、ページ読み込みに30秒〜1分かかる(R本体とパッケージのダウンロード)。2回目以降はキャッシュで速くなる。
  • 各セルのコードは自由に書き換えて「Run Code」で実行できる。何をどう壊しても誰にも迷惑はかからない。おかしくなったらページを再読み込みすれば元に戻る。
  • 元ネタは講義ノート(lecture4.html)。ここでは「数値をいじって挙動を体感する」ことに集中する。

実験1:σがIIAを壊す — 値上げで逃げた客はどこへ行くか

random coefficient logit では、価格係数が消費者ごとに違う。

\[ u_{ij} = x_j'\beta - \alpha_i\, p_j + \varepsilon_{ij}, \qquad \alpha_i = \exp(\bar{\alpha} + \sigma\, \nu_i), \qquad \nu_i \sim N(0, 1) \]

このとき\(e^{\bar\alpha}\)は価格係数の中央値で、平均は\(e^{\bar\alpha+\sigma^2/2}\)である。そのまま\(\sigma\)だけを動かすと水準平均まで変わるので、下の実験では\(\bar\alpha=\log E[\alpha_i]-\sigma^2/2\)と調整し、平均価格感応度を固定してばらつきだけを変える。

\(\sigma\) が価格感応度のばらつきで、\(\sigma = 0\) なら全員同じ係数、つまりただのlogitに戻る。市場には品質も価格帯も近い「プレミアム」ペア(財1・財2)と、安くて質素な「エコノミー」(財3)が並んでいる。財1を値上げしたとき、逃げた客の行き先の配分(diversion)を、「元のシェアに比例して流れる」というIIAの予測と比べよう。\(\sigma > 0\) なら、財1の客はもともと価格に鈍いプレミアム好きなので、受け皿は同じプレミアムの財2に偏り、outsideへの流出はIIA予測より小さくなるはずだ。

ノートやってみよう
  • sigma <- 0 にすると2種類の棒が完全に一致する(これがIIAの世界)。そこから0.4、0.8、1.2と上げて、財2への偏りが育っていく様子を見よう。
  • 財2をエコノミーに改造しよう(xbeta <- c(4.5, 2.1, 2.0)p_base <- c(3.0, 1.3, 1.2))。財1の近くに代替財がいなくなると、財2への「えこひいき」は消えるだろうか。
  • 問い:\(\sigma > 0\) のとき、outsideへの流出がIIA予測よりずっと小さくなるのはなぜか。「財1を買っていたのはどんな人か」から考えよう。

実験2:ドロー数nsと精度 — 積分を乱数で置き換えるコスト

random coefficient logit のシェアは積分が閉じた形にならないので、\(\nu\)ns 人ぶん引いて平均で近似するのだった。

\[ s_j \approx \frac{1}{ns} \sum_{r=1}^{ns} s_j(\nu_r) \]

この置き換えは無料ではない。同じパラメータでも、引いた乱数が違えばシェアの値は毎回少しずつ違う。ここでは ns を変えながら同じ計算を200回やり直し、シェア推定のブレ(標準偏差)がどう縮むかを測る。表の theory_sd は「個人選択確率の標準偏差を \(\sqrt{ns}\) で割った理論値」で、モンテカルロ誤差の定番公式だ。

ノートやってみよう
  • ns_list <- c(10, 100, 1000, 10000) にしてみよう。sdはさらに約 \(1/\sqrt{10}\) 倍になるか。実行時間の延び方も体感しておこう(精度はnsの平方根でしか買えない)。
  • sigma <- 0 にするとブレはどうなるか。実行する前に予想すること。ヒント:全員の選択確率が同じなら、誰を何人引いても平均は変わらない。
  • 問い:ns を10倍にすると sd_share はおよそ何分の1になるか。表の sd_sharetheory_sd を見比べて、モンテカルロ誤差の法則を自分の言葉で言おう。

実験3:ミニ合併シミュレーション — 所有行列を書き換えると価格が動く

供給側を入れる。各企業は自社製品群の利潤を最大化するように価格を決め(Bertrand-Nash)、均衡価格は

\[ p = mc + \Delta^{-1} s \]

を満たす。\(\Delta\) は所有関係と需要の傾きから決まる行列で、合併とは所有行列の中身を書き換える操作にすぎない。値上げして逃げた客を自社の別製品が受け止めてくれるなら、値上げのブレーキが外れる。財1・財2がプレミアム、財3・財4がエコノミーの4財市場で、合併前後の均衡を固定点反復で解く(反復上限300回・許容誤差1e-8とやや緩めの設定。収束しない場合はメッセージが出る)。合併する2財の組と、合併による限界費用の削減率(効率化)をいじれる。

ノートやってみよう
  • cost_cut <- 0.15 にしてみよう。効率化は値上げをどこまで打ち消すか。当事者の価格が合併前より下がるには何%の削減が必要か探ってみよう(かなり大きい数字になるはずだ)。
  • sigma <- 0(plain logitの世界)にして、c(1, 2) 合併と c(1, 3) 合併の結果を見比べよう。異質性を消すと、2つの合併の区別はどうなるか。
  • 問い:属性が近い2財の合併 c(1, 2) と遠い2財の合併 c(1, 3) では、当事者の価格上昇(pct_change)はどちらが大きいか。表示されるdiversion ratioと結びつけて説明しよう。

次に読むもの

  • 講義ノート本体:lecture4.html(random coefficient logitの導出・ミニBLP推定・合併分析の完全版)
  • coding課題:assignment4.qmd(J=3・T=60のDGPを自作し、\(\sigma\) のグリッドでGMMを回し、財1・2の合併まで分析する。この回のすべてを自分の手で通す課題)