Precisionのパラドックス

何か正式な名前がついているのかは知らないけれど、昔読んだ行動経済学系の何かの本に書いてあったような気がするのと類似の例を考えてみる。

問題:ある病気にかかる確率は1%とします。病気にかかっているときに、正しく病気だと診断される確率 (recall) は99%だとします。また、病気にかかっていないときに、正しく病気でないと診断される確率 (specificity) も99%だとします。では、病気だと診断されたとき、実際に病気である確率 (precision) はいくつでしょう?

具体的な数字で分かりやすく計算してみると:全部で10,000人いるとすると、そのうち、病気の人は100人、うち病気だと診断されるのは99人。また病気でない人は9,900人、うち病気だと診断されるのは99人。よって答えは50%。

一応ちゃんとした計算もすると、病気にかかる確率を \(p\) として、求める確率は

$$\begin{align}
\frac{p \cdot \mathrm{recall}}{p \cdot \mathrm{recall} + (1-p) \cdot (1-\mathrm{specificity})}
&= \frac{1}{1 + \frac{(1-p) \cdot (1-\mathrm{specificity})}{p \cdot \mathrm{recall}}} \\
&= \frac{1}{1 + \frac{0.99 \cdot 0.01}{0.01 \cdot 0.99}} \\
&= \frac{1}{1 + 1} = \frac{1}{2}.
\end{align}$$

というわけで、それほど高い値にはならない。

(ベイズっぽく説明することもできるけど、省略。機械学習的な文脈で追加の計算をすると、accuracy は 0.99 で、F1 score は 0.6644 になる。)

ちなみに \(p\) を fix してプロットすると、こんな感じ。\(p\) が小さいので、specificity の影響の方が大きい。

人間は条件付き確率を計算するのが苦手である。

コメント

タイトルとURLをコピーしました