Playground 4:消費者異質性と合併の実験室
計量経済学II(ブラウザ上でRが動きます)
- このページの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_shareとtheory_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の合併まで分析する。この回のすべてを自分の手で通す課題)