目次
そもそも「精度」という言葉が曖昧です
最初に、いちばん大事な話をします。日本語の「精度」は、機械学習の世界では複数の指標を指しうる言葉です。
- 正解率(Accuracy)——全体のうち、何割を正しく判定できたか
- 適合率(Precision)——「陽性」と判定したもののうち、何割が本当に陽性だったか
英語では Accuracy と Precision という別の言葉ですが、日本語ではどちらも文脈によって「精度」と呼ばれてしまいます。つまり「精度95%」という表現は、それだけでは何の数字か決まりません。
そして医療の現場では、さらに別の言葉が使われます。実は、医療でおなじみの用語と機械学習の用語は、多くが同じものを指しています。ここを対応させておくと、両方の資料が一気に読みやすくなります。
| 医療の言葉 | 機械学習の言葉 | 何を測るか |
|---|---|---|
| 感度 | 再現率(Recall) | 病気の人のうち、何割を拾えたか(見逃しの少なさ) |
| 陽性的中率(PPV) | 適合率(Precision) | 陽性と言われた人のうち、何割が本当に病気か |
| 特異度 | (特異度) | 健康な人のうち、何割を正しく陰性とできたか |
| 正診率 | 正解率(Accuracy) | 全体のうち、何割が正しかったか |
💡 感度と陽性的中率は「別物」です
ここが最大の分かれ道です。感度は「病気の人を起点」に数えた割合、陽性的中率は「AIが陽性と言った人を起点」に数えた割合。起点が違うので、値もまったく違います。そして、私たちが現場で本当に知りたいのは、たいてい後者——「陽性と言われたけれど、実際どうなの?」のほうです。
罠① 「正解率95%」は、何もしなくても作れる
まず、いちばん有名な落とし穴からいきます。
ある病気の有病率が1%だとします。1万人を検査すると、病気の人は100人、健康な人は9,900人です。ここで、こんな「AI」を考えてみてください。
⚠ 究極の手抜きAI
「全員、陰性です」とだけ答えるプログラム。中身の判定は何もしていません。
このAIの正解率はいくつでしょうか。健康な9,900人は全員正解ですから、9,900 ÷ 10,000 = 99% です。
何も判定していないプログラムが、正解率99%を達成してしまいました。もちろん、病気の人は100人全員を見逃しています(感度0%)。医療的にはまったく使い物になりません。
これが「不均衡データ」における正解率の罠です。珍しい病気ほど、正解率という数字は簡単に高く見えます。もし有病率が0.1%なら、同じ手抜きAIの正解率は99.9%になります。
教訓:正解率だけが書かれた性能報告は、ほぼ情報がありません。必ず「見逃しはどれくらいか(感度)」とセットで確認してください。
罠② 感度95%・特異度95%でも、陽性の8割は外れる
「では、感度と特異度をきちんと出せばいいのですね」——そのとおりです。ただし、ここにもう一段深い罠があります。
先ほどと同じ有病率1%の状況で、今度は感度95%・特異度95%という、かなり優秀なAIを考えます。1万人に使うと、こうなります。
| AIが「陽性」と判定 | AIが「陰性」と判定 | 合計 | |
|---|---|---|---|
| 本当に病気 | 95人 (正しく発見) |
5人 (見逃し) |
100人 |
| 健康 | 495人 (誤って陽性) |
9,405人 (正しく陰性) |
9,900人 |
| 合計 | 590人 | 9,410人 | 10,000人 |
さて、このAIに「陽性です」と言われた人は590人。そのうち、本当に病気なのは95人です。
陽性的中率 = 95 ÷ 590 = 約16%
つまり、「陽性」と言われた人の約84%は、実際には病気ではありません。
感度も特異度も95%という優秀なAIなのに、陽性判定の精度は16%。これは計算間違いではなく、健康な人の母数が圧倒的に多いために起きる、避けようのない現象です。健康な9,900人の5%だけでも495人——病気の人の総数100人を、はるかに超えてしまうのです。
💡 これは「AIが悪い」わけではありません
同じことは、従来の検査でも起きています。だからこそ検診では、一次検査で広く拾い、二次検査で絞り込むという段階的な仕組みが取られてきました。AIも同じで、「陽性=病気」ではなく「陽性=もう少し詳しく見る対象」と捉えるのが正しい使い方です。数字の意味を知っていれば、過度に不安になることも、過度に信頼することもなくなります。
この計算、自分で数字を動かして確かめられます
有病率・感度・特異度をスライダーで動かすと、陽性的中率がリアルタイムで変わるシミュレータを無料で公開しています。「有病率を1%から10%に上げると何が起きるか」を数秒で体感できます。登録不要・ブラウザだけで動きます。
同じAIでも、使う場所で数字が変わる
ここまでの話には、重要な続きがあります。まったく同じ性能のAI(感度95%・特異度95%)でも、どこで使うかによって陽性的中率が激変するのです。
| 有病率 | 想定される場面 | 陽性的中率 |
|---|---|---|
| 0.1% | 一般集団への広いスクリーニング | 約1.9% |
| 1% | 健診など | 約16.1% |
| 5% | リスクのある集団に絞った検査 | 約50.0% |
| 10% | 症状があって受診した人 | 約67.9% |
| 50% | 強く疑われる状況 | 約95.0% |
同じAIで、1.9%から95.0%まで変わります。ここから、とても実務的な結論が出ます。
論文や発表の数字が、自分の現場にそのまま当てはまるとは限りません。専門施設の「疑わしい人が集まる環境」で測った数字を、一般の健診にそのまま持ち込むと、偽陽性が想定よりずっと多く出ます。性能を見るときは「どんな集団で測ったか」を必ずセットで確認してください。
罠③ 感度と特異度は、同時には上げられない
「では、感度も特異度ももっと上げればいい」と思いたくなります。ですが、1つのモデルの中では、この2つはシーソーの関係にあります。
AIは多くの場合、「病気らしさ」を0〜1のスコアで出しています。そのうえで「何点以上を陽性とするか」という閾値(しきいち)を決めます。この閾値を動かすと——
| 閾値の設定 | 感度 | 特異度 | 見逃し | 偽陽性 |
|---|---|---|---|---|
| 低く(拾いすぎ気味) | 98% | 80% | 2人 | 1,980人 |
| 中くらい | 95% | 95% | 5人 | 495人 |
| 高く(厳しめ) | 80% | 99% | 20人 | 99人 |
※有病率1%・1万人あたりで計算した例です(感度・特異度の組み合わせは説明のための仮の値です)。
見逃しを減らそうとすれば偽陽性が増え、偽陽性を減らそうとすれば見逃しが増えます。どちらが正解ということはありません。目的によって選ぶものです。
- 見逃しが致命的な場面(重い病気の一次スクリーニングなど)→ 感度を優先する
- 過剰な精密検査の負担を避けたい場面→ 特異度を優先する
ですから、「感度98%!」という数字を見たら、その裏で特異度がいくつになっているかを必ず確認してください。片方だけを大きく見せるのは、閾値をずらせば誰にでもできてしまいます。
閾値を動かすと何が起きるか、目で見て確かめる
閾値と感度・特異度の関係を可視化したROC曲線シミュレータも公開しています。スライダーを動かすと曲線上の点が移動し、トレードオフの様子とAUCの意味が直感的につかめます。E資格・G検定の頻出テーマでもあります。
AUCという数字の意味と限界
論文や資料では、AUC(またはAUROC)という指標もよく登場します。「AUC 0.95」のような形です。
これは、先ほどの閾値を0から1まで全部動かしたときの成績を、1つの数字にまとめたものです。0.5だと「でたらめと同じ」、1.0だと「完璧」を意味します。閾値の選び方に左右されないため、モデル同士を比べるときに便利です。
ただし、AUCにも読み方の注意があります。
- 実際に使う閾値での成績は分からない——AUCは全閾値の平均的な良さなので、「実運用で使う1点」の性能は別途確認が必要です
- 不均衡データでは高く出やすい——珍しい病気ほど、AUCは良く見えることがあります
- 陽性的中率は分からない——AUCが高くても、有病率が低ければ偽陽性は多く出ます
AUCは「モデルの素質」を測る数字で、「現場での使い勝手」を測る数字ではない——このくらいの理解がちょうどよいと思います。
罠④ その95%は「どのデータ」で測ったか
最後に、数字そのものより大切かもしれない話をします。
AIの性能は、評価に使ったデータによって変わります。特に医療では、次のような理由で「別の施設に持っていくと成績が落ちる」ことが知られています。
- 撮影機器・設定の違い——メーカーや条件が変われば、画像の質感も変わります
- 患者層の違い——年齢構成や重症度が違えば、有病率も変わります(罠②の話に直結します)
- 運用の違い——どのタイミングで撮るか、誰が使うかで入力が変わります
そこで確認したいのが、「学習に使ったデータとは別の施設・別の期間のデータで検証しているか」という点です。同じ施設のデータを分割しただけの検証は、良く見えがちです。複数施設での検証結果があるかどうかは、その報告を信頼してよいかの大きな手がかりになります。
数字を見たときの5つの確認事項
ここまでの内容を、実際に使えるチェックリストにまとめます。ニュース・営業資料・論文、どれにも使えます。
- その「精度」は何の数字か?——正解率か、適合率(陽性的中率)か、感度か。書かれていなければ、まずそこを確認します
- 感度と特異度が両方書かれているか?——片方だけなら、もう片方は悪い可能性があります
- 対象集団の有病率はどれくらいか?——これが分からないと、陽性的中率は計算できません
- 自分の現場と条件が近いか?——専門施設の数字は、健診にはそのまま当てはまりません
- 別のデータで検証しているか?——複数施設・別期間での検証があるほど信頼できます
⚠ 数字を疑うことと、AIを否定することは違います
ここまで「罠」を並べてきましたが、これはAIが役に立たないという話ではありません。むしろ逆で、数字の意味を正しく知っている人ほど、AIを安心して使えます。「陽性=もう少し詳しく見る対象」と理解していれば、偽陽性が出ても慌てません。限界を知ったうえで使うことが、いちばん強い使い方です。
まとめ
要点を振り返ります。
- 日本語の「精度」は正解率とも適合率とも取れる曖昧な言葉。まず何の数字かを確認する
- 有病率1%なら、「全員陰性」と答えるだけで正解率99%。正解率だけの報告はほぼ情報がない
- 感度95%・特異度95%でも、有病率1%なら陽性的中率は約16%。陽性の多くは偽陽性になる
- 同じAIでも、有病率が変われば陽性的中率は1.9%〜95%まで変動する。使う場所が重要
- 感度と特異度は閾値によるトレードオフ。片方だけの数字は意味が薄い
- AUCはモデルの素質、現場の使い勝手とは別。外部データでの検証があるかも確認する
医療AIの数字は、難しい数学ではなく「どこを分母にしたか」を追うだけで、ほとんどが読み解けます。分母が変われば、同じ性能でも数字は大きく変わる——この一点さえ押さえておけば、見出しの数字に振り回されることはなくなります。
医療現場でのAIとの付き合い方についてはなぜ患者情報を生成AIに入力してはいけないのか、評価指標を試験対策として体系的に学びたい方は機械学習の基礎(評価指標)もあわせてどうぞ。
📚 本記事の数値について
※本文中の数値は、記載の条件(有病率・感度・特異度)から計算した例であり、特定の製品や検査の性能を示すものではありません。計算はすべて検算のうえ掲載しています。実際の診断・検査の判断は、医師をはじめとする専門職の評価によります。本記事は指標の読み方を解説するもので、個別の医療行為を推奨するものではありません。