⚠️ このページは機械翻訳されています

この日本語訳は機械翻訳によるもので、誤りや不自然な表現が含まれている場合があります。正確な内容については英語版をご参照ください。

This page was machine-translated and may contain errors. Please refer to the English version for accuracy.

誤りを見つけられた場合は、joseph.austerweil@gmail.com までご連絡いただくか、GitHub リポジトリにプルリクエストをお送りください

階層ベイズ

どちらも直感的に間違っている二つの極端

Chibanyは日誌をつけている。弁当を持ってきた学生ごとに、それがとんかつハンバーグかを記録している。しばらくすると、日誌は次のようになった。各学生について、弁当の総数 $n_i$ のうちとんかつを持ってきた回数 $k_i$ が記されている:

学生とんかつ $k_i$合計 $n_i$生の割合 $k_i / n_i$
Alyssa701000.70
Ben28400.70
Carmen6100.60
Diego350.60
Emi221.00
Farid010.00

Chibanyは各学生について、その学生がとんかつを持ってくる確率の真の値 $\theta_i$ を信頼できる形で推定したい。二つの明らかな方策はどちらも失敗する:

プーリングなし — 各学生を独立に推定する。 単純に生の割合 $k_i / n_i$ を使う。Alyssaの場合(70/100)は問題ない。しかし Emiは弁当を2回しか持ってきておらず、どちらもとんかつだったため、この方法では $\theta_{\text{Emi}} = 1.00$ となる。つまり、たった2データポイントの根拠で、Emiは常にとんかつを持ってくると確信を持って言えることになる。**Farid(0/1)**はさらに悪い:弁当を1回持ってきてハンバーグだったというだけで、彼は0%のとんかつ率、つまり絶対にとんかつを持ってこない人間だと宣言されてしまう。誰もこれらの結果を信じないだろう。

完全プーリング — 全員共通の割合を用いる。 全弁当をまとめて集計する:$158$回中$109$回がとんかつなので、全員について $\theta = 109/158 \approx 0.69$(実際には $0.690$で、データ数の多い AlyssaとBenが支配的)となる。これはEmi/Faridの問題を解決するが、学生間の実際の差異を捨て去ってしまう — そして学生同士には違いがあると考える十分な理由がある。

どちらの極端も正しくない。解決策は原理に基づいた中間点である部分プーリングだ:各 $\theta_i$ をその学生自身のデータを使いつつ、他の学生の傾向に引き寄せる形で推定する。データが多い学生は自分自身の割合に近いまま;データがほとんどない学生はグループ全体に強く引き寄せられる。これはまさに第4章で精度による重み付けとして学んだ**「事前分布とデータの妥協」そのものだ。ただし、今回の事前分布は他の学生の集合であり、想定されたものではなく学習される**ものである。

具体的な問題点

プーリングなしの危険性はデータの少ない学生において最も顕著に現れる:弁当が1〜2回では生の割合が0.00か1.00となり、最小限の証拠から最大限の確信を持った推定が生まれる。部分プーリングがEmiとFaridに具体的に何をするかを観察しよう。彼らこそがこの問題の核心だ。

以下はコードでのプーリングなしの問題点を示す例 — 背景にあるデータ量が大きく異なる生の割合:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import jax.numpy as jnp

# (student, tonkatsu count k_i, total bentos n_i)
names = ["Alyssa", "Ben", "Carmen", "Diego", "Emi", "Farid"]
k = jnp.array([70, 28, 6, 3, 2, 0])     # tonkatsu counts
n = jnp.array([100, 40, 10, 5, 2, 1])   # total bentos

raw_fraction = k / n
for name, kf, nf, r in zip(names, k, n, raw_fraction):
    print(f"  {name:7s} {int(kf):>2d}/{int(nf):<3d} -> raw estimate {float(r):.2f}")

出力:

  Alyssa  70/100 -> raw estimate 0.70
  Ben     28/40  -> raw estimate 0.70
  Carmen   6/10  -> raw estimate 0.60
  Diego    3/5   -> raw estimate 0.60
  Emi      2/2   -> raw estimate 1.00
  Farid    0/1   -> raw estimate 0.00

Emiが1.00、Faridが0.00という結果がその証拠だ:プーリングなしでは、1〜2回の弁当が — どちらの方向においても — 確信のように見せかけられてしまう。


2026/07/02