階層ベイズモデル
Hierarchical Bayesian Model ・ かいそうべいずもでる
グループ構造を階層の事前分布で表し、部分と全体で情報を共有するモデル
✦ 30秒で試す — 航海口コミが数件で高評価の店は、本当にいちばんの店か階層モデルで推定し直すと、評価が上になるのは?予想してみる概要
階層ベイズモデルは、データが持つグループ構造 — 学校ごとの生徒、店舗ごとの売上、患者ごとの繰り返し測定など — を、事前分布を階層的に重ねることで表現するベイズ推論のモデルです。各グループのパラメータ(例: 学校ごとの平均点)を別々に推定するのでもなく、全グループ共通の1つの値として推定するのでもなく、「グループごとのパラメータは、さらに上位の分布から生成された」と考えます。この上位の分布のパラメータをハイパーパラメータと呼びます。
この構造がもたらす最大の効果が「部分プーリング」です。データが少ないグループの推定値は全体平均の方向に引き寄せられ(縮小、shrinkage)、データが豊富なグループの推定値はそのグループ自身のデータを強く反映します。つまり「グループ間で情報を貸し借りする」推定が自動的に実現されるのです。口コミが3件しかない店の星4.5を鵜呑みにせず、「他の店の様子から見て、たぶんもう少し平凡だろう」と割り引く — 人が直観でやっている割り引きを、データから量まで決めて行う仕組みだと言えます。
マルチレベルモデル、混合効果モデルと呼ばれる手法も本質的には同じ発想で、教育統計・医療統計・マーケティングなど、グループ構造を持つデータの分析で広く標準的な道具になっています。
なぜ生まれたか
グループ構造を持つデータの分析には、古くから2つの素朴な選択肢がありました。1つはグループごとに完全に独立な推定を行うこと(プーリングなし)。しかしデータが数件しかないグループでは推定が極端にぶれ、「たまたま数人の点が良かった学校」が最優秀と判定されてしまいます。もう1つは全グループを1つにまとめて共通の値を推定すること(完全プーリング)。今度はグループ間の本物の差がすべて消えてしまいます。どちらの極端も現実に合わない — この板挟みが出発点でした。
転機になったのが、1956年にチャールズ・スタインが示した結果(スタインのパラドックス)です。正規分布に従う3つ以上の平均を同時に推定するとき、各グループの標本平均をそのまま使う推定量は、誤差の二乗の期待値の合計という意味で、必ず改善の余地がある — という直観に反する定理でした。1961年にはジェームズとスタインが、推定値をある一点に向けて一律に縮める具体的な推定量を示します。縮める先は理屈のうえではどこでもよく、データから求めた全体平均に向けて縮める版は4群以上で同じ保証が成り立ちます。ただしこれは「平均的に見れば誤差の合計が小さい」という保証で、どのグループの推定も毎回改善するという意味ではありません。
なぜ縮めると良くなるのか。1970年代、エフロンとモリスはこれを「グループのパラメータ自体がある分布に従っている」というモデルからの推定として読み解き、縮小がトリックではなく合理的な情報共有であることを示しました(経験ベイズと呼ばれる考え方です)。ベイズの枠組みでは、事前分布のパラメータにさらに事前分布を置くだけでこの構造が自然に書き下せます。かつては階層モデルの事後分布の計算が困難でしたが、1990年代以降のMCMCの実用化によって複雑な階層でも推論できるようになり、応用が一気に広がりました。
詳細
3層の構造 — データ・グループ・ハイパーパラメータ
典型的な階層ベイズモデルは3つの層でできています。最下層は観測データで、各グループのデータはそのグループのパラメータ θ から生成されると考えます。中間層はグループごとのパラメータ θ₁, θ₂, … で、これらは共通の上位分布(例: 平均 μ、標準偏差 τ の正規分布)から生成されたとみなします。最上層はその上位分布のハイパーパラメータ μ と τ で、ここに事前分布を置きます。ポイントは、τ が「グループ間のばらつきの大きさ」を表すパラメータであり、これ自体をデータから推定することです。
推論の結果、各 θ の事後分布は「そのグループ自身のデータが語る値」と「全グループから推定された全体像 μ」の重み付き折衷になります。正規分布のモデルでは、グループ j の推定値はおおよそ「(1 − B) × そのグループの平均 + B × 全体平均」という形になり、縮める割合 B は「グループ平均のぶれの大きさ(σ²/n)」と「グループ間の本物の差の大きさ(τ²)」の比で決まります。件数 n が少ないほど自分の平均のぶれが大きいので B は1に近づき(大きく縮む)、件数が多いほど0に近づきます(ほとんど縮まない)。データが3件しかないグループ1の推定は μ の近くまで縮小され、300件あるグループ3の推定はほぼ自分のデータどおりになる — これが部分プーリングの中身です。
3つの推定を並べてみる
8つの店舗の口コミ平均(件数は3件〜60件)を例に、プールしない・部分プーリング・完全プールの推定値を並べると次のようになります。3件しかないA店は口コミ平均4.52で首位ですが、部分プーリングでは3.91まで下がり、60件あるH店は3.92から3.89とほとんど動きません。完全プールでは全店が同じ値になり、店の差が消えます。
この例の数字は、実は「真の実力」を決めてから口コミを乱数で生成したものなので、答え合わせができます。下の部品で、群間のばらつき τ のつまみを動かして推定値が滑る様子を確かめ、「真の値を見る」で3つの推定法の誤差を比べてください。データから推定した τ̂ の付近で、誤差の合計が最も小さくなっています。
各店の口コミ平均をそのまま使っています(プールしない)。3件しかない A 店が 4.52 で首位。でも3件の平均は運でいくらでも振れます。つまみを左へ動かしてみてください。
白い輪 = 各店の口コミ平均(生の値)、金の点 = 推定値(点の大きさ = 件数)、破線 = 全体平均。つまみ τ = 店どうしの実力差の大きさ
縮小はなぜ合理的か
「データが語る値をわざわざ歪めるのは不当ではないか」と感じるかもしれません。しかし少数データの標本平均は標準誤差が大きく、極端な値はたいてい「実力に偶然の上振れが乗ったもの」です。次の測定では平均方向に戻ることが予想される(平均への回帰)ので、あらかじめ全体平均の方向に引き寄せた推定のほうが予測として当たります。有名な例がエフロンとモリスによる野球の打率予測で、シーズン序盤45打数の打率をそのまま信じるより、選手全体の平均に向けて縮小した推定のほうが、その後の打率をよく当てました。
縮小の量が人手の調整ではなく、データから推定された τ で決まるという点が階層モデルの美点です。τ が大きい(グループ差が本当に大きい)と推定されれば縮小は弱まり、τ が小さければ完全プーリングに近づきます。機械学習の言葉で言えば、上位分布は各グループのパラメータにかけた正則化です。リッジ回帰が係数を0に向けて縮めて推定を安定させるのと同じ構造で、階層モデルは「どこへ」「どれだけ」縮めるかまでデータから学ぶ正則化だと見ることもできます。
マルチレベルモデルと回帰への拡張
この考え方は回帰分析と自然に組み合わさります。たとえば「学校ごとに切片と傾きが異なる回帰」を考え、各校の切片・傾きが上位の分布から生成されたとモデル化する — これがマルチレベル(混合効果)回帰です。全校共通の1本の回帰線でも、学校ごとにバラバラの回帰線でもなく、その中間の「情報を共有した学校別回帰線」が得られます。地域・年齢・性別のように区分が細かくなってセルごとのデータが疎になっても安定した推定ができるため、世論調査の小地域推定(MRPと呼ばれる手法)などでも中心的な役割を果たしています。同じ人を繰り返し測定した医療データや、標本抽出が多段(県→学校→生徒)になっている調査データも、この枠組みの得意分野です。
推定の実際と落とし穴
階層モデルの事後分布は、共役事前分布で閉じるごく単純な場合を除いて解析的に求まらないため、実務ではMCMCによるサンプリングで近似します。Stan や PyMC などの確率的プログラミング言語を使えば、階層構造をほぼ数式どおりにコードへ書き下し、推論は処理系に任せられます。各グループの推定値には信用区間が付き、「どのグループが本当に優れているのか」という問いに不確実性込みで答えられます。
落とし穴も知られています。第一に、グループ数が少ない(目安として5前後以下)と τ の推定が不安定になり、縮小の量が信頼できなくなります。τ を点推定で済ませる経験ベイズでは、グループ数が少ないと τ̂ がちょうど0と推定されて完全プールに潰れることもよくあり、τ の事前分布を置いて不確実性ごと扱うフルベイズのほうが安全です。第二に、τ が小さいときにサンプラーが階層特有の「漏斗型」の事後分布にはまって動けなくなる問題があり、パラメータの持ち方を変える再パラメータ化(非中心化)で回避するのが定石です。第三に、縮小はあくまで「グループは交換可能 — どれも同じ上位分布から来た」という仮定に依存します。チェーン店と個人店のように明らかに性質の違うグループを同じ階層に混ぜると、不適切な方向への縮小が起きます。そうした違いが分かっているなら、グループの特徴を説明変数として上位の分布に入れる(全体平均ではなく「同じタイプの店の平均」へ縮める)のが正攻法です。
試問
8つの店(A〜H)の口コミ評価の平均が並んでいます。口コミの件数は 3件(A 店)から 60件(H 店)までばらばらで、いまはわずか3件の A 店が首位です。階層モデルは、各店の評価を全体平均の方へ縮めて推定し、その縮め具合を「店どうしの実力差 τ」で決めます(τ が小さいほど強く縮める)。口コミのデータは固定で、動かせるのは τ のつまみだけです。
各店の口コミ平均をそのまま使っています(プールしない)。3件しかない A 店が 4.52 で首位。でも3件の平均は運でいくらでも振れます。つまみを左へ動かしてみてください。
白い輪 = 各店の口コミ平均(生の値)、金の点 = 推定値(点の大きさ = 件数)、破線 = 全体平均。つまみ τ = 店どうしの実力差の大きさ
