Reactive Stats
EMUYN 統計シミュレーター

医療検査結果の確率論 ~検査結果の正しい解釈~

条件付き確率と医療検査の解釈

このアプリでは、医療検査の結果をどう解釈すべきかを条件付き確率の観点から学ぶことができます。特に「検査が陽性だった場合、本当に病気である確率」の計算方法とその意味を視覚的に理解できます。

医療検査の例で分かりやすく考えてみましょう

あなたが病気の検査を受けたとき、「検査が陽性 (positive)」と出た場合、本当に病気である確率はどれくらいでしょうか?これを考えるには3つの重要な要素があります。

  • 有病率: 人口全体で、その病気にかかっている人の割合
  • 感度: 病気の人が検査で「陽性」と正しく判定される確率
  • 特異度: 健康な人が検査で「陰性」と正しく判定される確率
よくある誤解: 「検査の精度が95%だから、陽性なら95%の確率で病気である」は間違いです。 「陽性の時に病気である確率」は、病気の珍しさ (有病率) にも大きく影響されます。

このアプリでは、スライダーを動かしてパラメータを変更することで、検査結果がどれだけ信頼できるかを視覚的に理解できます。特に「有病率が低い病気」の場合、検査が陽性でも本当に病気である確率は意外と低くなることを体験できます。

パラメータ設定
有病率 (P(病気)): 人口中の病気の人の割合 {{ (prevalence * 100).toFixed(1) }}%
1% 50%
感度 (P(陽性|病気)): 病気の人が陽性と判定される確率 {{ (sensitivity * 100).toFixed(1) }}%
50% 100%
特異度 (P(陰性|健康)): 健康な人が陰性と判定される確率 {{ (specificity * 100).toFixed(1) }}%
50% 100%
シミュレーションする人数 {{ totalPeople }}
シミュレーション結果

検査後の確率計算

検査が陽性のとき、実際に病気である確率: {{ (positiveTestValue * 100).toFixed(1) }}%

検査結果の内訳

正しく判定された人:

{{ results.truePositiveCount + results.trueNegativeCount }}人 ({{ ((results.truePositiveCount + results.trueNegativeCount) / totalPeople * 100).toFixed(1) }}%)

誤って判定された人:

{{ results.falsePositiveCount + results.falseNegativeCount }}人 ({{ ((results.falsePositiveCount + results.falseNegativeCount) / totalPeople * 100).toFixed(1) }}%)

詳細な内訳

真陽性 (病気で陽性):

{{ results.truePositiveCount }}人

真陰性 (健康で陰性):

{{ results.trueNegativeCount }}人

偽陽性 (健康なのに陽性):

{{ results.falsePositiveCount }}人

偽陰性 (病気なのに陰性):

{{ results.falseNegativeCount }}人

条件付き確率の計算

P(病気|陽性) = P(陽性|病気) × P(病気) ÷ P(陽性)

P(病気|陽性) = {{ (sensitivity * 100).toFixed(1) }}% × {{ (prevalence * 100).toFixed(1) }}% ÷ {{ (results.positiveCount / totalPeople * 100).toFixed(1) }}%

= {{ (positiveTestValue * 100).toFixed(1) }}%

視覚化
健康 ({{ totalPeople - results.sickCount }}人)
病気あり ({{ results.sickCount }}人)
真陽性
(病気で検査陽性)
偽陽性
(健康なのに検査陽性)
真陰性
(健康で検査陰性)
偽陰性
(病気なのに検査陰性)
条件付き確率の重要なポイント

検査結果をどう解釈するか

検査結果から病気の確率を計算する際に使われる公式 (条件付き確率の応用) は以下の通りです

\[ P(\text{病気}|\text{陽性}) = \frac{P(\text{陽性}|\text{病気}) \times P(\text{病気})}{P(\text{陽性})} \]

\[ \text{検査後の確率} = \frac{\text{検査の感度} \times \text{有病率}}{\text{陽性率全体}} \]

  • 有病率: \(P(\text{病気})\) - 検査前の病気である確率
  • 感度: \(P(\text{陽性}|\text{病気})\) - 病気の人が陽性と判定される確率
  • 陽性率全体: \(P(\text{陽性})\) - 検査が陽性となる全体的な確率
  • 検査後の確率: \(P(\text{病気}|\text{陽性})\) - 検査陽性という情報を得た後の、病気である確率

なぜこれが重要なのか?

  • 直感に反する結果: 検査の精度(感度・特異度)が高くても、有病率が低い場合、検査陽性の人が実際に病気である確率は意外と低くなります。
  • 条件の違いによる確率の変化:病気なら90%の確率で検査陽性になる」(\(P(\text{陽性}|\text{病気}) = 0.9\))と「検査陽性なら90%の確率で病気」(\(P(\text{病気}|\text{陽性}) = 0.9\))は異なります。
  • スライダーを動かして、有病率、感度、特異度の変化が検査後の確率にどう影響するかを確認してみましょう。

例: 有病率1%、感度95%、特異度90%の場合

\[ P(\text{病気}|\text{陽性}) = \frac{0.95 \times 0.01}{(0.95 \times 0.01) + (0.1 \times 0.99)} \approx 0.088 \]

つまり、陽性の場合でも病気である確率はわずか8.8%です!