ここでは、殺人事件の逆確率を考えます。
1)逆確率
「逆確率」、あるいは、「ベイズ確率」と呼ばれる確率があります。
パールの「因果推論の科学」から、逆確率の計算例を引用します。
病気にかかっているかを調べる検査をした場合を考えます。
この例題は、検査(test)と病気(disease)の関係です。
病気にかかっていて、検査で陽性になる確率は、P(T/D)です。(陽性の順確率)
病気にかかっていていなくて、検査で陰性になる確率は、P(¬T/¬D)です。(陰性の順確率)
検査が陽性の場合に、病気である確率は、P(D/T)です。(陽性の逆確率)
検査が陰性の場合に、病気でない確率は、P(¬D/¬T)です。(陰性の逆確率)
検査機器の開発では、病気にかかっている人を対象にして、「陽性の順確率」と「陰性の順確率」をあげることを目的としています。
つまり、検査機器には、機器の性能として、「陽性の順確率」と「陰性の順確率」が添付されています。
例えば、乳がんの検査機器であるマンモグラフィの「陽性の順確率」は80%で、「陰性の順確率」は90%です。
しかし、患者が欲しいデータは、逆確率です。
検査が陽性の場合に、病気である確率は、P(D/T)です。(陽性の逆確率)
検査が陰性の場合に、病気でない確率は、P(¬D/¬T)です。(陰性の逆確率)
明らかに、「陽性の順確率」と「陰性の順確率」のデータだけでは、逆確率が求まりそうにありません。
この計算には、ベイズの定理を使います。
その説明は、「因果推論の科学」にありますが、ここでは、省略します。
実は、ベイズの定理の数学は、直観的な理解が困難なことが知られています。
ベイズの定理の理解には、脳内の思考ルートの変更が必要になります。
ベイズの定理にかぎらず、確率の概念には、脳内の思考ルートの変更が必要になります。
これは、教育上のハードルになります。
riskyrは、Rのパッケージです。
オンライン版であるRのShinyコードもありますが、応答が悪かったので、以下では、インストール版を使いました。
riskyrは、確率を頻度に変換すれば、ベイズの定理の理解がなくとも、逆確率が理解できるという教育上の発見に基づいています。
以下では、riskyrに従って、頻度による逆確率の計算を説明します。
2)頻度による逆確率の計算
課題は、以下の順確率から、逆確率を求めることです。
病気にかかっていて、検査で陽性になる確率は、P(T/D)です。(陽性の順確率)
病気にかかっていていなくて、検査で陰性になる確率は、P(¬T/¬D)です。(陰性の順確率)
検査が陽性の場合に、病気である確率は、P(D/T)です。(陽性の逆確率)
検査が陰性の場合に、病気でない確率は、P(¬D/¬T)です。(陰性の逆確率)
プログラムに使われている変数名は、以下です。
陽性の順確率=診断決定の感度は=sens
診断決定の誤報率=fart
陰性の順確率=特異度=1 - fart = spec
陽性の検査結果が与えられた場合に、その病気に罹患している条件付き確率 =
陽性の逆確率=陽性予測値 = PPV
検査結果が陰性であった場合に、その病気に罹患していない条件付き確率 =
陰性の逆確率= 陰性予測値 = NPV
変数名で整理すると、sensとspecから、 PPVとNPVを求める課題になります。
確率を頻度表現に変換するためには、母集団のサイズNが必要になります。
Nが小さいと、確率値が、1/N以下になり、頻度の表現が整数で表示できなくなります。これを避けるには、大きめのNであれば、任意ですが、デフォルトは、N=1000になっています。なお、Nは、頻度の表現に関係しますが、計算結果には、関係しません。
最後に、次のデータが必須です。
病気の有病率=prev
マンモグラフィと乳がんの場合には、変数の値は、以下になります。
N=10000
sens=0.8
spec=0.9
prev=1/700
Rを起動して、パッケージで、risukyrを読み込みます。
mammoを定義します。
ラベルは、計算には関係がないので、任意です。
「 N = 1000,prev = 1/700,sens = .8,spec = 0.9」で、パラメータをセットしています。
>mammo <- riskyr(scen_lbl = "Example",
cond_lbl = "Mammography",
dec_lbl = "Screening",
popu_lbl = "Sample",
N = 10000,prev =1/700,sens = .8,spec = 0.9 )
これで、mammoを呼び出せば、 PPVとNPVが分かります。
>plot(mammo)
図1 頻度図
最上段は、サンプル数10000を示します。
2段目:
「病気の有病率=prev =1/700=0.014」なので、14人が、乳がんで、残りの9986人は、乳がんではありません。
3段目:
「陽性の順確率=診断決定の感度は=sens=0.8」なので、乳がんでかつ陽性の人の割合は、14x0.8=11人になります。
同様に、乳がんでかつ陽性でない人の割合は、14x0.2=3人になります。
「陰性の順確率=特異度=1 - fart = spec=0.9」から、「診断決定の誤報率=fart=0.1」
乳がんでなくかつ陰性でない人の割合は、9986x0.1=999人になります。
「陰性の順確率=特異度=1 - fart = spec=0.9」から、乳がんでなくかつ陰性である人の割合は、9986x0.9=8987人になります。
4段目:
検査で乳がんであると推定された人の数は、乳がんでかつ陽性の人の割合(11人)と乳がんでなくかつ陰性でない人(999人)の合計の1010人になります。
「陽性の逆確率=陽性予測値 = PPV」=乳がんでかつ陽性の人の割合(11人)÷検査で乳がんであると推定された人(1010人)です。
検査で乳がんでないと推定された人の数は、乳がんでかつ陽性でない人(3人)と乳がんでなくかつ陰性の人(8987人)の合計の8990人になります。
「陰性の逆確率= 陰性予測値 = NPV」=乳がんでなく陰性の人の割合(8887人)÷検査で乳がんでないと推定された人(8990人)です。
有病率(prev)に対する感度のグラフを書くことができます。
>plot(mammo, type = "curve", uc = .05)
図2 感染率の感度
4)殺人事件と自白
殺人事件(認知)件数は年あたり約1200件です。日本の人口は約1億2千万人なので、年あたりの殺人事件被害確率は、1/100000(10万分の1)です。
これは、被害者の確率で、加害者の確率ではありませんが、ある人が殺人事件の加害者である確率も、ほぼ同じで、およそ10万分の1であると考えます。
この事前確率の値は、情報がない場合の主観確率なので、既に過去に殺人事件を起こしている人の場合のような事前情報がある場合には、値が変わることに注意してください。
犯罪を犯して(D)、自白して罪を認める(T)確率を、P(T/D)とします。(順確率)
犯罪を犯していなくて(P(¬D))、自白をしない(P(¬T))確率を確率を、P(¬T/¬D)とします。(順確率)
これは、「殺人を犯していない」と供述する場合です。
自白があった場合に、犯罪を犯している確率は、P(D/T)です。(逆確率)
つまり、裁判で有罪になる問題は、逆確率(P(D/T))の推定問題になっています。
殺人事件の発生確率は、乳がんの発生確率より、遥かに低いです。
有罪の事前確率は、10万部の1でした。
有罪の事後確率に最も影響するパラメータは、P(T/¬D)でした。
P(T/¬D)は、罪を犯していないにも関わらず、自白をする確率です。
犯罪を犯して、自白して罪を認める確率P(T/D)の影響は非常に小さいです。
筆者は、裁判官がどのようにして、逆確率を推定してるのか知りません。
ベイス推定による逆確率の推定は、数学的に合理的なものです。
問題は、病気の検査の感度が100%ではないように、自白による犯罪の実施の感度も100%ではない点にあります。
感度が99%である場合を考えます。
>judge<- riskyr(scen_lbl = "Murder",
cond_lbl = "Judge",
dec_lbl = "Screening",
popu_lbl = "Sample",
N = 100000,prev =1/100000,sens = 0.99,spec = 0.99 )
>plot(judge) # default plot
>plot(judge, type = "curve", uc = .05) # plot probability curves (by prevalence):
図3 頻度図
図4 犯罪率の感度
自白した場合に、殺人を犯している確率(PPV)は、0.1%です。
つまり、自白を基準にすれば、自白による犯罪の実施の感度が、99%でも、99.9%の確率で冤罪になります。
2024年12月18日に、「東京地検や大阪地検の特捜部などの捜査で不適正な取り調べが相次いでいることを受け、最高検が各地の検察庁に対し、自白に固執しない適正な取り調べの徹底などを求める通知」を出したことが分かっています。
<< 引用文献
「自白に固執せず取り調べを」 最高検が各地に通知―相次ぐ不適正事案受け 2024/12/28 JIJI.COM
https://www.jiji.com/jc/article?k=2024122800352&g=soc
>>