Mímisbrunnr知恵の泉

← ベイズ統計 一覧

🎓 レベル:標準 | 重要度:B(標準)

📎 前提:信用区間と信頼区間 | 数理:共役事前分布(統計)

要点(BLUF)

1. 「情報を持ち込まない」という願い

データに語らせたい、事前で結論を誘導したくない——そんなとき無情報事前を使いたくなります。素朴には「全ての値を等しく」=平坦(一様)事前Beta(1,1)\mathrm{Beta}(1,1) がその例です(ベータ二項モデル)。しかし「平坦」には落とし穴があります。

2. 平坦事前の落とし穴:再パラメータ化で平坦でなくなる

「成功確率 θ\theta について一様」と「そのロジット ϕ=logθ1θ\phi=\log\frac{\theta}{1-\theta} について一様」は両立しませんθ\theta を一様にすると、ϕ\phi の密度は一様でなくなります(変数変換のヤコビアンが効く)。つまり「何について平坦にするか」で事前が変わり、客観的な無情報の基準になりません

import numpy as np

# θ~Uniform(0,1) を ロジット φ=log(θ/(1-θ)) に変換すると、φ は一様でない
rng = np.random.default_rng(0)
th = rng.uniform(0, 1, 500000)
phi = np.log(th/(1-th))
edges = np.array([-3,-2,-1,0,1,2,3])
hist, _ = np.histogram(phi, bins=edges, density=True)
centers = (edges[:-1] + edges[1:]) / 2
print("θが一様のとき φ=logit(θ) の密度(一定でない=平坦でない):")
for c, h in zip(centers, hist):
    print(f"  φ≈{c:+.1f}: 密度={h:.4f}")
print(f"  中央と端の密度比 ≈ {hist[len(hist)//2]/hist[0]:.2f} 倍(平坦なら1倍)")

出力:

θが一様のとき φ=logit(θ) の密度(一定でない=平坦でない):
  φ≈-2.5: 密度=0.0801
  φ≈-1.5: 密度=0.1648
  φ≈-0.5: 密度=0.2558
  φ≈+0.5: 密度=0.2544
  φ≈+1.5: 密度=0.1660
  φ≈+2.5: 密度=0.0789
  中央と端の密度比 ≈ 3.18 倍(平坦なら1倍)

出力の意味θ\theta で一様にしたのに、ロジット ϕ\phi で見ると中央が端の 33 倍以上濃い山なりになります(実体はロジスティック分布)。「平坦」はパラメータの取り方しだいで、絶対的な無情報ではないわけです。だから「とりあえず一様」は、変換に対して恣意的という批判を免れません。

3. ジェフリーズ事前:情報量ベースで変換に不変

この恣意性を消すのがジェフリーズ事前です。フィッシャー情報量 I(θ)I(\theta)(データが θ\theta について持つ情報の量)の平方根に比例させます。

pJ(θ)    I(θ),I(θ)=E ⁣[2logp(xθ)θ2]p_J(\theta)\;\propto\;\sqrt{I(\theta)},\qquad I(\theta)=-\,\mathbb{E}\!\left[\frac{\partial^2\log p(x\mid\theta)}{\partial\theta^2}\right]

これは再パラメータ化に不変です。ϕ=g(θ)\phi=g(\theta) と変換しても、Iϕ=Iθ(dθdϕ)2I_\phi=I_\theta\left(\frac{d\theta}{d\phi}\right)^2 より Iϕ=Iθdθdϕ\sqrt{I_\phi}=\sqrt{I_\theta}\left|\frac{d\theta}{d\phi}\right| となり、これはちょうど密度の変数変換則そのもの。つまり「θ\theta でジェフリーズ」と「ϕ\phi でジェフリーズ」が同じ事前を指します。§2 の恣意性が消えました。

ベルヌーイ尤度のフィッシャー情報量は I(θ)=1θ(1θ)I(\theta)=\dfrac{1}{\theta(1-\theta)} なので、

pJ(θ)θ1/2(1θ)1/2=Beta(12,12)p_J(\theta)\propto\theta^{-1/2}(1-\theta)^{-1/2}=\mathrm{Beta}(\tfrac12,\tfrac12)
import numpy as np
from scipy import stats

# ベルヌーイのフィッシャー情報量 I(θ)=1/(θ(1-θ)) から、ジェフリーズ ∝ sqrt(I)
theta = np.linspace(0.02, 0.98, 13)
jeffreys = np.sqrt(1/(theta*(1-theta)))       # ∝ ジェフリーズ事前
beta_half = stats.beta(0.5, 0.5).pdf(theta)   # Beta(0.5,0.5) の密度
ratio = jeffreys / beta_half                  # 比が一定なら ∝ で一致
print(f"sqrt(I(θ)) / Beta(0.5,0.5).pdf の比: 最小={ratio.min():.5f} 最大={ratio.max():.5f}")
print("→ 比が一定(=π)なので ジェフリーズ事前 = Beta(0.5, 0.5)")

# ジェフリーズ事前 + データ(n=10,k=3) → 事後(共役なので Beta)
a_post, b_post = 0.5 + 3, 0.5 + (10 - 3)
print(f"ジェフリーズ事前+データ(n=10,k=3) → 事後 Beta({a_post}, {b_post}), 事後平均={a_post/(a_post+b_post):.4f}")

出力:

sqrt(I(θ)) / Beta(0.5,0.5).pdf の比: 最小=3.14159 最大=3.14159
→ 比が一定(=π)なので ジェフリーズ事前 = Beta(0.5, 0.5)
ジェフリーズ事前+データ(n=10,k=3) → 事後 Beta(3.5, 7.5), 事後平均=0.3182

出力の意味I(θ)\sqrt{I(\theta)}Beta(0.5,0.5)\mathrm{Beta}(0.5,0.5) の密度の比はどの θ\theta でも π\pi で一定——両者は比例、すなわちベルヌーイのジェフリーズ事前は Beta(0.5,0.5)\mathrm{Beta}(0.5,0.5) です。一様 Beta(1,1)\mathrm{Beta}(1,1) より端(0と1)を少し重く見るのが特徴で、小標本で被覆が良くなる(信用区間と信頼区間)ことが知られます。共役なのでデータを足すだけで事後 Beta(3.5,7.5)\mathrm{Beta}(3.5,7.5) が出ます。なお正規分布では、位置 μ\mu のジェフリーズは平坦、尺度 σ\sigma のジェフリーズは 1/σ\propto 1/\sigma になります。

4. 弱情報事前:実務の既定値

ジェフリーズ事前は理屈は美しいものの、多次元では計算が重く、ときに不適切(積分が発散する変則事前になる)こともあります。実務でいま標準的なのは**弱情報事前(weakly informative prior)**です。

「データに語らせたいが、暴走は止める」——強い事前と無情報事前の中間の、現実的な落としどころです。弱情報事前を入れても結論が変わらないかは、感度分析(事前の選び方と感度分析)で確認します。

⚠️ よくある誤解

関連ノート