4. ベイズ推定入門

4-1. 図によるイメージ作り

今回は、条件付き確率、ベイズ定理、ベイズ定理を利用した推定(ベイズ推定)のイメージを掴むため、新たな図を導入しましょう。

5つの動画に纏めましたので「順番に」閲覧してください。

表(クロス集計表)から、図へ。

オッズとオッズ比。

オッズとオッズ比のイメージつかめましたか? 確認です。前回紹介した薬(毒?(^^;)の例で、理解を確認しておきましょう。

・薬を飲んで病気が治った人:80人
・薬を飲んで病気が治らなかった人:40人
・薬を飲まずに病気が治った人:20人
・薬を飲まずに病気が治らなかった人:5人

の場合、

・薬を飲んで、病気が治る確率
・薬を飲んで、病気が治るオッズ
・薬を飲まずに、病気が治る確率
・薬を飲まずに、病気が治るオッズ
・薬を飲むことにより、(薬を飲まないときに比べて)病気が治るオッズ比
を求めてください。

...

正解は、
・薬を飲んで、病気が治る確率: 80/(80+40) = 0.67
・薬を飲んで、病気が治るオッズ: 0.67/(1-0.67) = 2.03
・薬を飲まずに、病気が治る確率: 20/(20+5) = 0.80
・薬を飲まずに、病気が治るオッズ: 0.80/(1-0.80) = 4.00
・薬を飲むことにより、(薬を飲まないときに比べて)病気が治るオッズ比: 2.03/4.00 = 0.508
です(式を正しく回答できれば十分です。オッズやオッズ比の「定義」を正しく理解しているかどうかの確認であり、計算は電卓等で簡単にできますから...)。なお、オッズ比が1よりも小さいことから、この薬は「効くとは考えられない」と結論できることも分かると思います。

余談: このような(薬が効くと考えれれるかどうかの)因果推定は、前回の説明のように、条件付確率の値そのものでも同じ議論ができますが、基本的な概念・用語用語ですし、分野によっては確率の値そのものでなく「オッズとオッズ比を使って同じことを議論することも多い」ですので、「オッズ、オッズ比という用語の意味」は、理解しておくとよいと思います(なお、医療・健康分野の国家試験などにもオッズやオッズ比が出題されることもあると聞いていますので、そのような分野の方は、特に、この機会にきちんと理解しておくと、あとでいいことがあるかもしれません)。また、ここで求めている「統計的確率」は、あくまで荒っぽい「推定」ですから、本当は効く薬なのに、たまたま(サンプルの取り方により不可避的に生じる統計的揺らぎにより)このような結果が得られたのかもしれませんから、「確かなこと(正確なこと)」は、これだけでは分かりません(ここで分かるのは、たぶん**じゃないか?、程度のことです)。後で、そのようなサンプリングによる統計的揺らぎまで考慮した「サンプル(のクロス集計表)から、母集団のオッズ比の推定(区間推定)をする方法」も紹介します。実際に薬などを開発する場合(薬が効くか効かないかを、比較的正しく判定する必要がある場合)には、2重盲検法でこのようなデータ(サンプル)を取った上でオッズ比の区間推定をし、その結果から、薬が効くか効かないかの判断をします。これについては、サンプリングや母集団の性質の推定や検定等の学習をした後に、最後の方で、また説明します。

では、引き続き、この図を使う方法で、ベイズ定理の意味と、陽性的中率と陰性的的中率について、見ていきましょう。


ベイズ定理の意味とベイズ推定のイメージつくり 

疫学への応用:検査結果と罹患

陽性的中率と陰性的中率の計算方法(公式導出) 



4-2. ベイズ推定の考え方

図による説明で、ベイズ定理や、陽性的中率や陰性的中率の求め方のイメージ掴めましたか?

この図の表し方(確率を線分の長さや面積で表し、縦で分けてから横で分ける、横で分けてから縦で分けるという形でベイズ定理を位置づける)は、私のオリジナルなアイデアですので、多分(まだ)どの本にも(完全な形では)出ていないはずと思います。また、陽性的中率や陰性的中率の公式は、図を見れば、殆ど自明に求められると思いますので、この図のイメージさえつかめれば、公式を覚える必要はありません。

EZRを使って計算することもできますが、公式が出てしまえば、たとえばそれをExcel等に入力することにより、Excelで簡単に求めることもできます。EZRを使えない人、あるいは使えるけど余裕のある人は、Excelでの計算にチャレンジするのも良いと思います。公式は「人が覚えて使うものではなく、機械に計算させるために入力するもの」と思ったほうが合理的です( 参考:https://www.u-kochi.ac.jp/~kazama/UOKLMS/statistics/bayes.xlsx)。


ところで、EZR では、「テスト前確率=p」「感度=X」「特異度=Y」を入力すると、

陽性的中率= { X p }  /  {X p +(1 - Y)( 1 - p ) }

陰性的中率 =  { Y (1 - p) } / { (1 - X)p+ Y (1 - p)  }。

が求まります。

では、入力する「テスト前確率」「感度」「特異度」は、どのように求めるのでしょうか? 「感度」「特異度」は、「多数の、実際に感染している患者・感染していない患者に対して、検査を行った結果」から推定します。実際に感染者10000人に検査をして、9900人陽性ならば、感度0.99と推定します。特異度も同様です。なお新型コロナのPCR検査の場合、感度は70%くらい、特異度は90%~99.9%くらいと言われています。テスト前確率(=事前確率)は、「検査する前に(検査によらず)被験者が感染している確率」ですから、通常は「感染率」を使います。人口1憶人に対し、感染者1万人なら、1万/1億=0.0001と推定することが「普通」です。ただし何らかの理由により、一般の人より感染している確率が高い場合、たとえば、ダイヤモンドプリンセス号の場合なら「乗客何名中何名感染していたかの発表数」から、事前確率(テスト前確率=検査前の感染率)を推定すればよいと思います。また、既に症状が出ている場合や、他の検査で陽性が出ているなどは、検査とは無関係に、もっと高い確率で感染していると思われますので、その度合いに応じ、たとえば「感染しているかどうか、半々くらいかな?」と思われる場合には、たとえば0.5を入力します。

「え? そんな主観的な判断基準で良いの?」と驚く方もいると思いますが、それが「ベイズ推定の特徴」であり、近年急速に応用が広がっている理由の1つでもあります。

つまり(場合の数からとか、データからとかの)客観的な確率だけではなく、「根拠は上げられないけど、***くらいと思う」という「主観的確率」を元にした解析も可能なんです。


4-3. 事前確率、事後確率、ベイズ更新

ベイズ定理を利用した推定は、 \[ P( {\rm B|A} ) =\frac{ P( {\rm A|B} )}{P( {\rm A})}P({\rm B}) ,\] \[ P( {\rm B|A} ) =\frac{ P( {\rm A|B} ) }{P( { \rm A|B} )P({\rm B}) +P( {\rm A|\bar{B} } )P({\rm \bar{B}}) }P({\rm B}) \] の関係を使います。ここで、\( P( {\rm B} ) \) を事前確率、 \( P( {\rm B|A} ) \) を「A であるという条件を知った上での」事後確率と呼びます。病気と診断の例では、Bを感染、Aを(検査)陽性と読み替えられます。事前確率は、通常は、検査結果を見ない段階(検査を行う前)の感染の確率=テスト前確率=感染率を使います。そして、陽性という結果を知った上での感染の確率(陽性的中率)、陰性と言う結果を知った上での非感染の確率(陰性的中率)が求められます。

しかしそれだけでなく、たとえば「この患者、たぶん1/100くらいの確率で感染していると思う」という主観的な判断に対しても、その後検査をして、陽性か陰性かという客観的な事実を踏まえて、「より確からしい確率」を求めること(更新すること)が可能です。この考え方を「ベイズ更新」と言います。

また、感染率が極端に低い場合、検査しても陽性が出ても、擬陽性の可能性が高く陽性的中率が著しく低い場合があります。そのような、一見「役に立たない」と思われるような場合でも、1回目の検査結果から推定される確率は、事前確率よりは高くなります。そこで、もう一度同じ検査を行います(再検査)。こんどは1回目の検査で得られた結果が、2回目の検査の事前確率になりますので、もし2回目(再検査)も陽性の場合、かなり罹患している確率は高くなります。つまり、

検査前の事前確率(一般的な感染率)→1回目の検査(ベイズ更新)→1回目の検査の事後確率=2回目の検査前の事前確率→2回目の検査(ベイズ更新)→2回目の検査の事後確率=3回目の検査前の事前確率 ....

という具合に、検査結果を得るごとに「事後確率」が変化し(感染確率が更新され)、それを元に次の検査を重ねることにより(ベイズ更新)、(たとえ感染率が低いために1回目の陽性適中率が低くても)より確からしい感染確率にたどり着く、ということになります。これが「再検査」の原理で、実際に集団検診や癌検診などで、実際に使われている手法です。

このように、ベイズ定理を利用した推定は「事実を踏まえて、より確からしい確率への修正(更新)していく」という形なので、最初の時点での確率の推定が主観的であっても、また仮にでたらめであっても、「その後、十分な事実を踏まえられる場合には」、最終的に、かなり妥当な推定確率に収束していく、という特徴があります。


【まとめ】

陽性的中率、陰性的中率の意味と計算の仕方、分かりましたか? うっかりすると、陰性的中率の意味を誤解しているかもしれませんよ。また具体的な計算の仕方、パラメタの入力の仕方も分かりましたか? いろいろ計算してみてください。なおテキストの問題の解答は、テキストの後ろに出ています。

なお、確率の計算は「元々正解のわからない計算をしている」という意識が必要と思います。そのうえで「もっともありえそうなこと、妥当そうなこと」を求めているのみです。たとえばコロナの場合、テスト前確率は、一般的には感染率ですが、「対象者がどの個別集団に属していたと考えるか」で「テスト前確率」は違いますし、また症状が出ている場合などは「主観確率」も利用されます。そのうえで、検査固有の感度・特異度をを元に、陽性・陰性の結果をどう解釈したらよいかが「確率」で得られます。得られた確率をどう解釈し、どう行動するかが、意思決定ということになります。病気の診断の場合には「医師」が「(検査技師の出した)検査結果」に基づき「診断」を下す場面で、この確率に基づいた決断を行います。

さて、テキストP25~P48 の内容は全て終わりました。最後に、もう一度テキスト第二章全体を(P23~P50までも含め)通して読んで、疑問点がないか、確認してください。また、P50の例題2-3を自分でも解いてください。



なお次回は、1章に戻り「記述統計」を行います。内容は(今の課程では)高校で教わっていることが殆どと思いますので、予め各自テキストの第1章を読んでおいてください。次回の授業ではEZRの使い方などを動画で説明しますので、「情報演習室など、EZRをインストールしてあるPCが使える環境」で受講してください。


------
【おまけ(^^;)】

なお、こんな例題も面白いかも。緊急事態宣言の基準、人口10万人あたり直近1週間に0.5人以上というのは、感染力のある感染者数(以後感染者と略)が十万分の0.5、つまり、およそ、感染者の割合=感染率(p)=1/20万=0.000005=5e-6\(=5 \times 10^{-6}\)のとき、と考えられます。PCR検査の感度(X)はおよそ0.7程度と言われていますが、まあ改善があったとして0.9くらいと見積もり(これ以上という事はないでしょう)、特異度(Y)は0.99くらいと言われていますが、これも改善が有ったとして、0.99999で見積もってみましょう(これ以上ということは無いでしょう)。たぶんこれで、「実際の陽性適中率、陰性適中率より高め(実際にはこれ以下)」と思われます。

さて、緊急事態宣言の基準に達したとき、このPCR検査をして「陽性」と判定された場合、その人が本当にコロナ感染している確率はどのくらいでしょうか?(EZRで計算しても、紹介したExcelシートを使っても、また、公式に基づき自分でExcel等で計算しても、電卓で計算しても、手計算で計算しても、かまいません)。 答えは... 陽性適中率31%,陰性適中率99.99995%程度です。だから、もし陽性なら(感染とは断定できませんから)「再検査」した方が良いと思われます(事前確率31%からの再検査は、陽性適中率も陰性適中率もかなり高くなります)。

では、ある陽性患者いて、1週間に接触した人1000人程度いて、そのうち1人陽性他は陰性だったとします。この場合、「その人と同じような行動をしていた人たち」は、もし、(他の)陽性患者と接触していれば(感染者との濃厚接触者とでも呼びましょうか)、1/1000程度の確率で、感染している可能性があると考えられます。この場合、感染者との濃厚接触者の事前確率は(主観的確率かもしれませんが、およそ)0.001です。その場合、(一般に)感染者との濃厚接触者が、もし検査を受けて陽性だったなら、感染している確率は... 事前確率(検査前確率)0.001ですから、陽性適中率は98.9%,陰性適中率は99.99%程度になりますから、まあ、陽性なら感染している、陰性なら感染していない確率が高いと思えます。

ところで、「感染者と濃厚接触していたと思っていたが、実は勘違い(記憶違い)で、実はすれ違っていて、濃厚接触していなかった(^^;)」場合に、検査結果で陽性となった場合はどうでしょう? これは、事前確率0.001が誤りで、事前確率5e-6の場合ですから、その人が本当に感染している確率は、31%になります。この数値(確率)、皆さんの「常識」でしたか?(^^; ベイズ推定の知識が無い人は「陽性=感染、陰性=非感染」と誤解している場合が多いのではないかと思います。

その他、さまざまなケースに対して「妥当と思われる数値」を入れて、実際にベイズ推定の計算してみると、面白いと思います(認識が変わるかもしれません)。



-----
【参考】迷惑メールチェックの原理(ベイジアン・フィルタ)と機械学習。
  1. 「迷惑メール(A)と思うもの」と「迷惑メールと思わないもの」を分類します。
  2. P (ある単語を含む|迷惑メール) 、およびその余事象などを頻度分布に基づき求めます。
  3. ベイズ定理を使い、P(迷惑メールである確率事前))から、その単語を含みか否かで、P (迷惑メールである/でない|その単語を含む/含まない)を求める(ベイズ更新)
  4. その事後確率を元に(事前確率として)、次の単語を含む/含まないに応じて、ベイズ更新を繰り返す。
  5. 十分に沢山の迷惑メールとそうでないメールのサンプルがあれば、かなり高い確率で迷惑メールとそうでないメールを自動判別できます(ベイジアンフィルタ)。

この手法は、迷惑メールの判断だけでなく、他の場合でも「機械に過去の経験を蓄え(学習させ)、過去の学習結果に基づき、機械に自動的に判断させる」場合に、汎用的によく使われる方法です(機械学習と言われる技法の1つです)。


では、今日は、このへんで終わります。