渋谷駅前で働くデータサイエンティストのブログ

元祖「六本木で働くデータサイエンティスト」です / 道玄坂→銀座→東京→六本木→渋谷駅前

見た目は全く同じ実験結果なのに、データの取られ方次第で分析結果が変わる統計的仮説検定

各種SNSでたまに統計哲学まわりの議論が出ると必ず話題に上るのが「尤度原理」即ち「尤度(ある結果が生じる確率をモデルのパラメータ \thetaの関数と見たもので「データがもたらす」ものでもある)が同じ(もしくは関数形が同じで互いに比例関係にあるだけ)であるならば分析結果もまた同じでなければならない」という考え方で、ほぼ確実に頻度論vs.ベイズの文脈で出てくる話です。ところが、周囲を観測した範囲では意外と知らない人が多いようなので、太古の昔から言い古されてきたネタですがこのブログでも取り上げてみようかと思います。


なお、今回のネタは日本語圏の資料に乏しい上に詳説している邦書はほぼ見当たらないという有様でして、色々と調べながら自前でまとめたものですので、理解不足・認識の誤りによる不備などがあり得ます。その際は是非忌憚なくご指摘くだされば幸いです。

見た目は全く同じ結果の2つのコイン投げ実験


以下の2つのコイン投げ実験の結果があったとします。

  1. コインを12回投げたところ表が3回&裏が9回出た
  2. コインを表が3回出るまで投げようと決心して投げ続けたところ,12回投げたところで3回目の表が出たのでそこで止めた

どちらも「12回コインを投げたら表が3回&裏が9回出た」という事実(データ)即ち尤度は一緒です。では、この2つの実験結果に基づいて「そのコインの裏表に偏りはあるか」を頻度論的な統計的仮説検定(帰無仮説有意差検定)で検証してみたらどうなるでしょうか?


実は、実験1と2とでは得られる検定結果が異なるのです。片側検定と両側検定のいずれを採るべきかには議論があるそうですが*1、少なくとも片側検定で見れば実験1は有意差無しである一方で実験2は有意差「あり」と判定されるんですね。一見するとパラドックスにも見えますが、それにはきちんとした理由があります。


たどった実験計画次第で従う確率分布が変わるので、検定の結果も変わってくる


ちょっと考えればすぐ分かるかと思いますが、実験1は純粋に「ランダムな0/1のベルヌーイ試行」であり二項分布に従うものとみなせます。これに対して、実験2は「試行回数があらかじめ決められておらず、r回の成功が起こるまで試行が続けられる場合を考えた際の、失敗回数kの分布」即ち負の二項分布に従うものとみなされます。


ここで、成功した(コインの表が出た)回数を x x回成功するのに要したベルヌーイ試行回数を n、成功する確率(母数:パラメータのこと)を \thetaとすると、実験1・2それぞれの尤度関数は

 L_1(\theta) = p_1(x | \theta) = \left( \begin{array}{c} n \\ x \end{array} \right) \theta^x (1 - \theta)^{n - x} = 220 \theta^9 (1 - \theta)^3

 L_2(\theta) = p_2(x | \theta) = \left( \begin{array}{c} n - 1 \\ x - 1 \end{array} \right) \theta^{x - 1} (1 - \theta)^{(n -  1) - (x - 1)} \cdot \theta = 55 \theta^9 (1 - \theta)^3

となります。なお、実験2については負の二項分布の定義上「 n - 1回試行するまでに既に x - 1回成功した上でその次の n回目で成功する」という表現になっている点に注意。


この2つは尤度原理の観点から見れば互いに比例関係にあるので「同じ」だと言えるはずなのですが、尤度の具体的な値自体は異なっています。ここで統計的仮説検定の立場に従って片側検定のための片側確率を出してみましょう。実験1・2とも \theta = 0.5として試行回数が12回で表が3回以下出る確率を算出してみると、

 Pr_1(X \leq 3) = \left( \left( \begin{array}{c} 12 \\ 3 \end{array} \right) + \left( \begin{array}{c} 12 \\ 2 \end{array} \right) + \left( \begin{array}{c} 12 \\ 1 \end{array} \right) + \left( \begin{array}{c} 12 \\ 0 \end{array} \right) \right) \cdot 0.5^{12} = 0.073

 Pr_2(X \leq 3) = \left( \left( \begin{array}{c} 11 \\ 2 \end{array} \right) + \left( \begin{array}{c} 11 \\ 1 \end{array} \right) + \left( \begin{array}{c} 11 \\ 0 \end{array} \right) \right) \cdot 0.5^{11} \cdot 0.5  = 0.0164*2

となり、有意水準5%のもとで実験1では有意にならない一方で、実験2では有意になります。尤度関数自体は(尤度原理の考え方に従えば)「等価」なはずなのですが、統計的仮説検定という枠組みにおいては有意確率を算出する都合上この二者は別物として扱われるというわけです。


このような性質をもとに「統計的仮説検定は尤度原理を満たさない」と言われているわけですが、それが良いか悪いかはまた別の問題であるように個人的には考えています。では、例えばベイズならどうなるんでしょうか?


ベイズなら尤度原理を満たすが、代わりに事前確率に影響される


広く知られるベイズの定理即ち「事後確率 ∝ 尤度 × 事前確率」という公式に従えば、実験1・2ともに尤度関数も周辺尤度(データから得られる)も同じなので、「コインに歪みがあるかどうか」を表す事後確率は自然と事前確率次第ということになると思われます。


ここでポイントになるのが「実験1と2とで事前確率は同じか否か」という点かなと。実験1は(恐らく)先入観なしの純粋なベルヌーイ試行としてコイントスを12回繰り返しているので、事前確率は0.5で良いのでしょう。しかし、実験2は先入観があるかないかで言うと恐らく「ある」んじゃないかと個人的には感じます*3


そこで、Rの{binom}パッケージを使って簡単に試してみようと思います。これは名前の通り二項分布に関連する分析を扱うパッケージで、デフォルトの{stats}よりも細かい分析手法を提供しています。binom.bayes関数で表が3回&裏が9回(試行回数12回)の時の事後確率分布をデフォルトで算出して、binom.bayes.densityplot関数でプロットすると以下のようになります。

library(binom)

binom.bayes(3, 12, type = 'highest')
#R>  method x  n shape1 shape2      mean      lower     upper  sig
#R>1  bayes 3 12    3.5    9.5 0.2692308 0.05783724 0.5005905 0.05

binom.bayes.densityplot(
    binom.bayes(3, 12,
                type = 'highest')
    )

95%信用区間が0.50を(微かながら)またいでいるので、ベイズではありますが「コインに歪みがあるとは言えない」ということが分かります。では、「このコインは歪んでいるっぽいので表は出にくいはず」という先入観を表す事前確率分布を与えるとどうなるんでしょうか?

# 裏が出やすいというベータ事前分布のパラメータ設定をしてみる
binom.bayes(3, 12, prior.shape1 = 1, prior.shape2 = 5, type = 'highest')
#R>  method x  n shape1 shape2      mean      lower     upper        sig
#R> 1  bayes 3 12      4     14 0.2222222 0.05284648 0.4095168 0.05000001

binom.bayes.densityplot(
    binom.bayes(3, 12,
                prior.shape1 = 1, prior.shape2 = 5,
                type = 'highest')
    )

0.5が95%信用区間の外側にはみ出ているので、ベイズではありますが「コインはきっと歪んでいる」という推論結果になっています。仮に実験2が純粋なベルヌーイ試行である実験2とは異なって「きっとコインは歪んでいるから表が3回出るまでに沢山裏が出るに違いない」という先入観(事前確率)のもとで行われていたとしたら、このような推論になっても不思議はない……と言えそうです。それが事前確率として提示されるのがベイズなら、尤度関数の係数として提示されるのが頻度論的な仮説検定、ということのようにも見えます。


こう書くと「ベイズでも実験1と2とで分析結果が変わるじゃないか」と突っ込まれそうですが、「事前確率は尤度原理の外側にある」ものなので、ベイズは尤度原理を満たすと言って良いということのようです。尤度原理を満たすからこそ、その外側のあれこれをきちんとしなければならない、ということですね。


コメントなど


「頻度論は尤度原理を満たさないことがあるがベイズは満たす」という議論は統計学クラスタでは割と頻出のネタなんですが、僕個人としては日本語圏のテキストではほぼ見かけないこともあってこれまではあまり考えずに流してしまっていたのでした。今回たまたま英語圏さらには統計哲学分野では有名とされる今回の話題をおさらいしてみて、ようやくその一端に触れられた気がしています。


ちなみに、今回の記事を書くに当たってうちの嫁さんに実験1・2の違いがどこにあると思うかを試しに聞いてみたら、実験2についてギャンブラーの誤謬との関連を指摘されて、なるほどそういう観点もあるのだなと唸らされました。これも統計哲学で扱われるテーマであることを考えると、僕はもっと統計哲学を学ぶべきなのかもしれませんね(汗)。


なお、今回の記事は以下の資料を参考にさせていただきました。Wikipedia英語版記事でも全く同じ例が引かれている通りで、非常に有名な例であり複数の統計哲学系のテキストに登場するテーマだそうです。

で、3つを読み比べた上で主にWikipedia英語版記事を参照しながら今回の記事を書いた次第です。実はこれらの資料をよくよく読むと互いに微妙に細かいところで説明が異なっている*4ので、最終的にWikipedia英語版記事に絞りました。ただしbinom.bayes周りの話題は奥村先生の記事を、課題設定の分解の仕方は堀井先生の記事を参考にさせていただいています。


終わりに


……ということで、ちょっと早めですが今年のこのブログはこれで書き納めです*5。世間では相変わらずLLM/生成AIの話題が沸騰し続けていますが、このブログではそれらの話題も取り上げつつ、今後も地に足のついたデータサイエンスの話題を展開していこうと思います。それでは皆様、良いお年を。

*1:後述する奥村先生の記事にコメントがありますがここでは割愛します

*2:「最後に3回以下表が出たのでそこで打ち切ってみたら12回だった」なのでこういう計算になる

*3:「決心して」投げているので

*4:本質的には同じ話をしているのであって分かってない僕がポンコツなだけと思われますががが

*5:年末回顧記事を書く気が失せただけ