https://yng87.page/blog/feed.xml

ベイズファクターによる仮説検定

2023-05-03

ベイズ統計に基づく仮説検定の手法として、ベイズファクターと呼ばれる量を用いるものがある。頻度論による検定の問題を克服する手段としてベイズが挙げられるときは、ベイズファクターのような手法を想定している場面が多いと思う。仕事ではこれまで頻度論による検定で間に合ってしまう場面が多くあまり触れてこなかったが、最近になってようやく勉強したので、簡単にまとめておきたい。

仮説検定の方法

ベイズファクターによる検定を理解するために、古典的な頻度論による手法や、ベイズ信用区間を利用したものとの比較をしてみる。解析的に計算可能な例を持ち出すのがわかりやすいと思うので、単純なコイン投げ実験を考えてみよう。コインを NN 回投げて、表が mm 回でたとき、このコインに歪みがないかどうかを判定したいとする。表の出る確率を μ\mu とすると、

  • 帰無仮説 (H0H_0): μ=0.5\mu = 0.5
  • 対立仮説 (H1H_1): μ0.5\mu \neq 0.5

のどちらを選ぶかという問題になる。

頻度論の仮説検定

まずは頻度論による検定を簡単にまとめてみる。頻度論では H0H_0 のもとで検定統計量の従う確率分布を求め、観測値が得られる確率 (p-value) を計算する。コイン投げの場合、二項検定カイ二乗検定を実行すればよいだろう。P-value を計算し、それが事前に決めた基準値より小さい場合に、背理法的に H0H_0 を棄却する。

頻度論による検定の特徴を挙げてみる:

  • 通常、統計量の従う分布が解析的に計算できる場合を扱う。そうでないときもサンプル数が多ければ、中心極限定理を介して適用できることもある。そのため、軽い数値計算で分析できることが多い。
  • 帰無仮説を棄却することはできても採択することはできない。頻度論の検定は背理法と同様の構造なので、「矛盾があるから仮定が偽」と結論することはできるが、積極的に帰無仮説が真と主張することはできない。
  • (今回は深入りしないが)尤度原理に反する。

次にベイズ統計を使った方法の一つである、信用区間を使った検定について見ていこう。

ベイズ信用区間

ベイズ統計を使った検定方法の一つに、信用区間を利用するものがある。これは統計モデルのパラメータ推定の結果を検定に応用する手法である。

ここではコイン投げ実験を二項分布でモデリングすることにしよう。表の出る確率 μ\mu の事前分布はベータ分布に設定する mB(N,μ),μBeta(a,b). \begin{aligned} m &\sim \mathrm{B}(N, \mu), \\ \mu &\sim \mathrm{Beta}(a, b). \end{aligned}

ここで aa, bb はハイパーパラメータである。よく知られているように、ベータ分布は二項分布に対する共役事前分布になっており、事後分布が解析的に計算できる: μBeta(m+a,Nm+b). \mu \sim \mathrm{Beta}(m+a, N-m+b).

仮説検定として使う際は、事後分布で μ\mu が高い確率で含まれている区間(信用区間)を計算し、そこに帰無仮説が含まれているかどうかを見る。今回の例では帰無仮説は μ=0.5\mu=0.5 であり、この値が信用区間の外にあれば帰無仮説を棄却することができる。逆に区間の内側にあれば、データが積極的に対立仮説を支持するとは言えないということになる。

この信用区間を使った方法には以下の特徴がある

  • μ\mu の確率分布を計算できる。そのため得られた信用区間を「パラメータがある確率で含まれる区間」と素直に解釈できる。頻度論では μ\mu は確率変数ではなかったので、分布を計算することはできない。頻度論でも同様の概念として信頼区間があるが、μ\mu が確率変数ではないので解釈に注意する必要がある。
  • 一般的に、サンプル数が大きくなるほど、事前分布の影響が減少していく。上の例では m,Nma,bm, N-m \gg a, b であれば、結果は a,ba, b の選択に鈍感になる。
  • 事後分布を得るには、一般的にはMCMCなどの重い数値計算が必要となる。
  • 帰無仮説と対立仮説を対等に扱っているわけではない。上の例では、帰無仮説は μ=0.5\mu=0.5 という一点であるが、事後分布 Beta(m+a,Nm+b)\mathrm{Beta}(m+a, N-m+b) のもとで μ\mu がこの値を取る確率は常にゼロである。そのため帰無仮説を採択できるかどうかが焦点になるようなケースには向かないらしい。この点に関しては、Rouder, Haaf and Vandekerckhove (2018) で詳しく論じられている。

ベイズファクター

概要

信用区間を使った方法は、ベイズ統計を使っているとはいえ、実質は確率分布のパラメータ推定だった。頻度論よりも得られた区間推定の結果が解釈しやすいなどの特徴はあるが、帰無仮説を積極的に採択する用途には向かないという事情は同じであった。

一方、ベイズファクターはベイズ統計のモデル比較の考え方を用いる手法であり、この困難を克服する事ができる。

我々が本当に評価したいのは、データ D\mathcal{D} が与えられた下での、仮説 HH の事後確率 p(HD)p(H|\mathcal{D}) である。ベイズでは仮説は統計モデルで表す必要がある。ここではそれを M\mathcal{M} としよう。ベイズの定理を用いるとモデル M\mathcal{M} の事後確率は p(MD)=p(DM)p(M)p(D) p(\mathcal{M}|\mathcal{D}) = \frac{p(\mathcal{D}|\mathcal{M})p(\mathcal{M})}{p(\mathcal{D})} とかける。帰無仮説と対立仮説でこの量の比を取ると

p(M1D)p(M0D)=p(DM1)p(DM0)×p(M1)p(M0) \frac{p(\mathcal{M}_1|\mathcal{D})}{p(\mathcal{M}_0|\mathcal{D})} = \frac{p(\mathcal{D}|\mathcal{M}_1)}{p(\mathcal{D}|\mathcal{M}_0)} \times \frac{p(\mathcal{M}_1)}{p(\mathcal{M}_0)} となる。この右辺第一項 BF10=p(DM1)p(DM0) BF_{10} = \frac{p(\mathcal{D}|\mathcal{M}_1)}{p(\mathcal{D}|\mathcal{M}_0)} がベイズファクターと呼ばれる量であり、marginal likelihood p(DM)p(\mathcal{D}|\mathcal{M}) の比になっている。p(M1)/p(M0)p(\mathcal{M}_1)/p(\mathcal{M}_0) はそれぞれのモデルに対する事前の信念の比であり、ベイズファクターが計算できると、このオッズをデータで更新できるということだ。

特に、事前オッズを 1 にすれば、ベイズファクターが1からどれだけ離れているかで、仮説を検定できる。1 より十分大きければ対立仮説を採択し、逆に1より十分小さければ帰無仮説を採択する。これまでの手法はいわばヒューリスティックなのだが、ベイズファクターはモデルの事後確率を、確率の法則に従って自然に評価しているという点で、理論的には素直で気持ちが良い。

ベイズファクターも検定である以上、値がいくつ以上なら仮説を採択・棄却するのかは業界や現場で基準を決める必要がある。例えば Kass and Raftery (1995) によく使われる基準がいくつかまとめられている。

Marginal likelihood

ベイズファクターで肝になるのは、marginal likelihood である。コイン投げの例を使ってこれを計算してみよう。信用区間の場合と同様に、コイン投げを二項分布でモデルすると、M0\mathcal{M}_0 のもとでは μ=1/2\mu=1/2 なので p(DM0)=(Nm)2N p(\mathcal{D}|\mathcal{M}_0) = \binom{N}{m}2^{-N} となる。

一方、M1\mathcal{M}_1 の場合は話が少々複雑になる。μ1/2\mu \neq 1/2 は連続量なので、以下の積分を実行しなければならない: p(DM1)=01dμ p(DM1,μ)p(μM1). p(\mathcal{D}|\mathcal{M}_1) = \int_0^1d\mu\ p(\mathcal{D}|\mathcal{M}_1, \mu)p(\mu|\mathcal{M}_1).

尤度 p(DM1,μ)p(\mathcal{D}|\mathcal{M}_1, \mu) には前と同様二項分布 p(DM1,μ)=(Nm)μm(1μ)Nm, p(\mathcal{D}|\mathcal{M}_1, \mu) = \binom{N}{m}\mu^m(1-\mu)^{N-m}, を採用し、μ\mu の事前分布 p(μM1)p(\mu|\mathcal{M}_1) にはベータ分布 Beta(a,b)\mathrm{Beta}(a, b) を仮定してみよう。ベータ分布の密度関数は p(μM1)=Γ(a+b)Γ(a)Γ(b)μa1(1μ)b1 p(\mu|\mathcal{M}_1) = \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}\mu^{a-1}(1-\mu)^{b-1} である。すると marginal likelihood は解析的に計算できて p(DM1)=N!m!(Nm)!Γ(a+b)Γ(a)Γ(b)Γ(m+a)Γ(Nm+b)Γ(a+b+N) p(\mathcal{D}|\mathcal{M}_1) = \frac{N!}{m!(N-m)!}\cdot\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}\cdot\frac{\Gamma(m+a)\Gamma(N-m+b)}{\Gamma(a+b+N)} となることがわかる。特に m,Nma,bm, N-m \gg a, b の場合は lnp(DM1)ln(Γ(a+b)Γ(a)Γ(b))+(a1)lnm+(b1)ln(Nm)(a+b1)lnN, \ln p(\mathcal{D}|\mathcal{M}_1) \simeq \ln\left(\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}\right) +(a-1)\ln m+(b-1)\ln(N-m)-(a+b-1)\ln N, が得られる。

事前分布への依存

この式を見ると分かる通り、marginal likelihood は、μ\mu の事前分布 p(μM1)p(\mu|\mathcal{M}_1) に依存する。特に、サンプル数が大きくなっても事前分布の影響が残り続ける。もちろん事前分布としてベータ分布以外のものを選んでも良いので、この式で表されるよりもさらに大きい自由度がある。

ベイズ信用区間の場合、サンプル数を増やしていくと事前分布の影響は減衰する傾向にあった。一方 marginal likelihood は尤度に事前分布をかけて積分した量なので、事前分布が狭すぎても広すぎても小さな値になってしまう。1 そのため、例えば安易に無情報な分布を用いると、対立仮説の marginal likelihood が小さく評価され、帰無仮説がより支持されるようになる。

このような性質があるため、ベイズファクターを仮説検定に用いる際には、事前分布の設計にドメイン知識を活用したり、コミュニティでの合意が取れているような分布を利用したりというのが大事になる。また事前分布の選択に関する sensitivity analysis も必要となる。一応この負担を軽減するために default prior と呼ばれる分布が設計されているらしいが、それらを盲目的に使うことへの批判もある。Reddit にも色々と事前分布に関する議論があるし、もう少し実務に近いところだと、BingのA/Bテストの事例でも、過去の実験結果を使って事前分布を構成することの重要性が主張されている。

その他の特徴

事前分布への敏感性以外に、ベイズファクターの特徴をまとめてみよう

  • ベイズファクターでは、帰無仮説を採択することができる。これは、帰無仮説と対立仮説を対等に扱っているからである。
  • 信用区間の場合と同様、一般に積分を解析的に実行することはできないので何らかの数値計算が必要となる。Rには、このための BayesFactor というパッケージがある。
  • 任意の2つの仮説を比較できる。頻度論やベイズ信用区間の場合、帰無仮説と対立仮説のコイン投げ分布は同じ二項分布で、そのパラメータ μ\mu の値がどうなるかを調べていたが、ベイズファクターでは全く異なる分布を持つようなモデル同士の比較も可能。

まとめ

以上の内容を表にまとめてみた

帰無仮説の採択任意の仮説同士の比較Prior への依存計算コスト
頻度論不可不可-
ベイズ信用区間不可不可一般に大
ベイズファクター一般に大

個人的には、計算や sensitivity analysis の大変さを考慮すると、実用上ベイズファクターを使うのは、帰無仮説を採択したいなど他の手法では分析ができないケースに限られそうという印象。

よくあるRCTの効果検証であれば、効果量とサンプルサイズ設計をしっかりした上で頻度論の仮説検定を使うのが楽だと思う。

References


1

例えばPRMLの三章に直感的な説明がある。