← 統計検定テキスト 一覧

📊 対象級:1級 | 重要度:B(標準)

要点(BLUF)

診断検査の指標は「検査側の性質(感度・特異度)」と「患者側から見た当たり具合(PPV・NPV)」の2系統に分かれます。前者は有病率に依存しない検査固有の性能、後者は有病率に強く依存する——この区別がこの分野の心臓部です。

1級(統計応用・医薬生物学)では2×2表からの感度/特異度/PPV計算・有病率がPPVに与える影響・尤度比による更新・ROC/AUCの解釈が問われます(出題範囲・配点は改訂されうるため要最新確認)。

graph TD
  ROOT["診断検査の性能評価"] --> TEST["検査固有の性質<br/>(有病率に不依存)"]
  ROOT --> PRED["患者側の当たり具合<br/>(有病率に依存)"]
  TEST --> SENS["感度 = 真陽性率 TPR<br/>病気の人を陽性と当てる"]
  TEST --> SPEC["特異度 = 真陰性率 TNR<br/>健康な人を陰性と当てる"]
  PRED --> PPV["PPV 陽性的中率<br/>陽性者のうち真の患者"]
  PRED --> NPV["NPV 陰性的中率<br/>陰性者のうち真の健常者"]
  SENS --> BAYES["ベイズの定理<br/>有病率→PPV/NPV"]
  SPEC --> BAYES
  BAYES --> LR["尤度比<br/>事前オッズ×LR=事後オッズ"]
  TEST --> ROC["ROC曲線・AUC<br/>カットオフを動かした識別能"]

1. 混同行列と4つの基本量

すべての出発点は 2×2 の混同行列(分割表) です。検査の判定(陽性/陰性)を行、真の病態(疾患あり/なし)を列に取ります。

疾患あり(D+D^+疾患なし(DD^-
検査陽性(T+T^+真陽性 TP偽陽性 FP
検査陰性(TT^-偽陰性 FN真陰性 TN

ここから「列方向(真の病態で割る)」と「行方向(検査結果で割る)」の2系統の指標が生まれます。この割る方向の違いが、感度/特異度とPPV/NPVを分ける本質です。

1.1 列方向 — 感度・特異度(検査固有)

真の病態を条件として、検査が当てる割合を測ります。

感度(sensitivity)=P(T+D+)=TPTP+FN\text{感度(sensitivity)}=P(T^+\mid D^+)=\frac{\mathrm{TP}}{\mathrm{TP}+\mathrm{FN}}

要するに「病気の人を、検査がちゃんと陽性と拾える率」。真陽性率(true positive rate, TPR)と同じものです。

特異度(specificity)=P(TD)=TNTN+FP\text{特異度(specificity)}=P(T^-\mid D^-)=\frac{\mathrm{TN}}{\mathrm{TN}+\mathrm{FP}}

要するに「健康な人を、検査がちゃんと陰性と返せる率」。真陰性率(TNR)と同じです。

ここから2つの誤り率が定義されます。

偽陰性率=P(TD+)=1感度,偽陽性率=P(T+D)=1特異度\text{偽陰性率}=P(T^-\mid D^+)=1-\text{感度},\qquad \text{偽陽性率}=P(T^+\mid D^-)=1-\text{特異度}

要するに「偽陰性率は見逃し率(病気を陰性と誤る)、偽陽性率は空振り率(健康を陽性と誤る)」。感度を上げれば見逃しが減り、特異度を上げれば空振りが減ります。

決定的な性質:感度・特異度は有病率に依存しない。 上の式はすべて「D+D^+ の中だけ」「DD^- の中だけ」で計算され、分母に「集団全体に占める病気の割合」が一切入りません。だから対象集団の有病率が高かろうが低かろうが、感度・特異度は検査そのものの固有の性能として変わりません。これがあとで効いてきます。

1.2 行方向 — PPV・NPV(有病率依存)

今度は検査結果を条件として、それが当たっている割合を測ります。患者・臨床医が本当に知りたいのはこちらです(「陽性と出た、で、私は本当に病気なの?」)。

PPV(陽性的中率)=P(D+T+)=TPTP+FP\text{PPV(陽性的中率)}=P(D^+\mid T^+)=\frac{\mathrm{TP}}{\mathrm{TP}+\mathrm{FP}}

要するに「検査が陽性と言った人のうち、本当に病気だった割合」。

NPV(陰性的中率)=P(DT)=TNTN+FN\text{NPV(陰性的中率)}=P(D^-\mid T^-)=\frac{\mathrm{TN}}{\mathrm{TN}+\mathrm{FN}}

要するに「検査が陰性と言った人のうち、本当に健康だった割合」。

感度 P(T+D+)P(T^+\mid D^+) とPPV P(D+T+)P(D^+\mid T^+)条件と結果が入れ替わっているだけに見えますが、P(AB)P(BA)P(A\mid B)\ne P(B\mid A) なので一般にまったく別物です。この入れ替えを橋渡しするのがベイズの定理であり(第2節)、橋渡しに必要な追加情報が有病率です。だから感度・特異度が同じでも、有病率が違えばPPV・NPVは変わります。

flowchart LR
  CM["2×2 混同行列<br/>TP / FP / FN / TN"] --> COL["列方向:真の病態で割る"]
  CM --> ROW["行方向:検査結果で割る"]
  COL --> S1["感度 = TP/(TP+FN)"]
  COL --> S2["特異度 = TN/(TN+FP)"]
  ROW --> P1["PPV = TP/(TP+FP)"]
  ROW --> P2["NPV = TN/(TN+FN)"]
  S1 -.有病率に不依存.-> NOTE1["検査固有の性能"]
  P1 -.有病率に依存.-> NOTE2["集団によって変わる"]

2. PPVをベイズの定理で導く

2.1 導出

PPV は「検査陽性という証拠を得たあとの、病気である確率」です。これはまさにベイズの定理で事前確率を事後確率に更新する操作になります。事前確率は有病率 p=P(D+)p=P(D^+) です。ベイズの定理より

PPV=P(D+T+)=P(T+D+)P(D+)P(T+)\mathrm{PPV}=P(D^+\mid T^+)=\frac{P(T^+\mid D^+)\,P(D^+)}{P(T^+)}

分母 P(T+)P(T^+)(検査が陽性になる全確率)を、病気の人からの陽性と健康な人からの陽性に分解します(全確率の公式)。

P(T+)=P(T+D+)P(D+)真陽性+P(T+D)P(D)偽陽性P(T^+)=\underbrace{P(T^+\mid D^+)P(D^+)}_{\text{真陽性}}+\underbrace{P(T^+\mid D^-)P(D^-)}_{\text{偽陽性}}

ここで P(T+D+)=感度P(T^+\mid D^+)=\text{感度}P(T+D)=1特異度P(T^+\mid D^-)=1-\text{特異度}P(D+)=pP(D^+)=pP(D)=1pP(D^-)=1-p を代入すると、検査の指標だけで書けます。

  PPV=感度×p感度×p+(1特異度)×(1p)  \boxed{\;\mathrm{PPV}=\frac{\text{感度}\times p}{\text{感度}\times p+(1-\text{特異度})\times(1-p)}\;}

要するに「PPV = 真陽性の量 ÷(真陽性の量+偽陽性の量)」。分子は「病気の人を正しく拾った量」、分母に足される第2項は「健康な人を誤って拾った量」です。同様に NPV も導けます。

  NPV=特異度×(1p)特異度×(1p)+(1感度)×p  \boxed{\;\mathrm{NPV}=\frac{\text{特異度}\times(1-p)}{\text{特異度}\times(1-p)+(1-\text{感度})\times p}\;}

ここで読み取るべき核心は、右辺に有病率 pp が露骨に入っていることです。感度・特異度(検査固有・pp に無関係)が同じでも、pp が変わればPPV・NPVは変わります。これがPPV/NPVが有病率依存である理由の数式上の証拠です。

flowchart LR
  PRIOR["事前確率<br/>有病率 p = P(D+)"] --> UPDATE["ベイズ更新<br/>感度・特異度で重み付け"]
  EVIDENCE["証拠:検査が陽性 T+"] --> UPDATE
  UPDATE --> POST["事後確率<br/>PPV = P(D+ | T+)"]

2.2 低有病率でPPVが激減する数値例

「感度が高い検査なら陽性なら安心」という直観がいかに危ういかを数値で見ます。感度 99%、特異度 95% という優秀な検査を考えます。

ケースA:有病率 p=0.10p=0.10(10%、よくある病気)

10万人を検査すると想定します(割合計算でもよいが人数の方が直観的です)。

PPV=99009900+4500=9900144000.688 (68.8%)\mathrm{PPV}=\frac{9900}{9900+4500}=\frac{9900}{14400}\approx 0.688\ (68.8\%)

陽性と出れば約 69% が本当に病気。まずまず信用できます。

ケースB:有病率 p=0.001p=0.001(0.1%、まれな病気・集団検診)

PPV=9999+4995=9950940.0194 (1.94%)\mathrm{PPV}=\frac{99}{99+4995}=\frac{99}{5094}\approx 0.0194\ (1.94\%)

同じ感度99%・特異度95%の検査なのに、陽性と出ても本当に病気なのはわずか約2%。 98%は偽陽性です。

何が起きたか。健康な人が圧倒的多数(99,900人)なので、特異度95%でも生じる5%の偽陽性(4,995人)が、病気の人の真陽性(99人)を量で押し潰します。有病率が低いと「分母の健康な人の母数が巨大」になり、わずかな偽陽性率でも偽陽性の絶対数が真陽性を上回る——これが**偽陽性パラドックス(false positive paradox)/基準率の誤謬(base rate fallacy)**です。

有病率 pp真陽性偽陽性PPV
10%(ケースA)9,9004,500約 68.8%
1%9904,950約 16.7%
0.1%(ケースB)994,995約 1.9%

要するに「検査の性能(感度・特異度)が同じでも、まれな病気を低有病率の集団でスクリーニングすると、陽性的中率は劇的に下がる」。だからスクリーニング検査では「陽性 → ただちに確定」ではなく、より特異度の高い確定検査(confirmatory test)で再評価する2段構えが標準になります。


3. 尤度比とオッズ形のベイズ更新

3.1 尤度比の定義

PPVの式は有病率 pp を含むため、検査ごとに pp を変えて計算し直す手間があります。これを「検査の情報量(pp に依存しない)」と「集団の有病率」にきれいに分離できるのが**尤度比(likelihood ratio, LR)**です。

  LR+=P(T+D+)P(T+D)=感度1特異度  \boxed{\;\mathrm{LR+}=\frac{P(T^+\mid D^+)}{P(T^+\mid D^-)}=\frac{\text{感度}}{1-\text{特異度}}\;}

要するに「陽性という結果が、病気の人で出る確率は、健康な人で出る確率の何倍か」。LR+\mathrm{LR+} が大きいほど「陽性」が病気を強く示唆します。陰性についても同様に、

LR=P(TD+)P(TD)=1感度特異度\mathrm{LR-}=\frac{P(T^-\mid D^+)}{P(T^-\mid D^-)}=\frac{1-\text{感度}}{\text{特異度}}

要するに「陰性という結果が、病気の人で出る確率は、健康な人で出る確率の何倍か」。LR\mathrm{LR-} は小さい(0に近い)ほど「陰性」が病気を強く否定します。臨床の目安では LR+>10\mathrm{LR+}>10 または LR<0.1\mathrm{LR-}<0.1 で強い証拠、11 付近(0.520.5\sim2)はほとんど情報がない、とされます(あくまで目安)。

3.2 「事前オッズ × 尤度比 = 事後オッズ」の導出

ベイズの定理をオッズ(確率の比 P/(1P)P/(1-P))で書くと、尤度比が更新の乗数として顔を出します。事後確率の比を取ります。

P(D+T+)P(DT+)=P(T+D+)P(D+)/P(T+)P(T+D)P(D)/P(T+)\frac{P(D^+\mid T^+)}{P(D^-\mid T^+)} =\frac{P(T^+\mid D^+)P(D^+)/P(T^+)}{P(T^+\mid D^-)P(D^-)/P(T^+)}

分母の P(T+)P(T^+) が上下で約分されて消えます(ベイズの定理をオッズで書く利点はここ——厄介な周辺確率 P(T+)P(T^+) が消える)。残るのは

  P(D+T+)P(DT+)事後オッズ=P(T+D+)P(T+D)LR+×P(D+)P(D)事前オッズ  \boxed{\;\underbrace{\frac{P(D^+\mid T^+)}{P(D^-\mid T^+)}}_{\text{事後オッズ}} =\underbrace{\frac{P(T^+\mid D^+)}{P(T^+\mid D^-)}}_{\mathrm{LR+}} \times \underbrace{\frac{P(D^+)}{P(D^-)}}_{\text{事前オッズ}}\;}

すなわち

事後オッズ=LR+×事前オッズ\text{事後オッズ}=\mathrm{LR+}\times\text{事前オッズ}

要するに「検査前のオッズ(有病率のオッズ p/(1p)p/(1-p))に、尤度比を掛けるだけで検査後のオッズになる」。掛け算ひとつでベイズ更新が完了します。LR+\mathrm{LR+} は有病率に依存しない検査固有の量なので、これで「検査の情報量(尤度比)」と「集団の事前オッズ」が分離できました。

更新後の事後オッズを確率に戻せば PPV=事後オッズ1+事後オッズ\mathrm{PPV}=\dfrac{\text{事後オッズ}}{1+\text{事後オッズ}} です。この「確率→オッズ→(×尤度比)→オッズ→確率」の流れを図式化した臨床ツールが**ファーガンのノモグラム(Fagan nomogram)**で、3本の目盛り(事前確率・尤度比・事後確率)を直線で結ぶだけで事後確率が読めます。

flowchart LR
  A["事前確率<br/>有病率 p"] --> B["事前オッズ<br/>p/(1-p)"]
  B --> C["× 陽性尤度比 LR+"]
  C --> D["事後オッズ"]
  D --> E["事後確率<br/>= PPV"]

第2.2節のケースAを尤度比で再計算して整合を確認します。LR+=0.99/(10.95)=0.99/0.05=19.8\mathrm{LR+}=0.99/(1-0.95)=0.99/0.05=19.8。事前オッズ =0.10/0.90=0.111=0.10/0.90=0.111。事後オッズ =19.8×0.111=2.2=19.8\times0.111=2.2。事後確率 =2.2/(1+2.2)=0.688=2.2/(1+2.2)=0.688。第2.2節の 68.8% と一致します。


4. ROC曲線とAUC

ROC曲線とAUC:カットオフを動かすと感度と1−特異度がトレードオフで動き、曲線下面積が識別能を表す

図は simulations/roc_auc_keijou.py で生成。

4.1 カットオフを動かす — ROC曲線

ここまでは「陽性/陰性」が固定された2値検査でした。しかし多くの検査は連続値(血液マーカーの濃度、スコア)を出し、「いくつ以上を陽性とするか」のカットオフ(閾値)を分析者が決めます。カットオフを動かすと感度と特異度がトレードオフで変わります。

この「カットオフを全範囲で動かしたときの(横軸 11-特異度、縦軸 感度)の点の軌跡」が **ROC曲線(receiver operating characteristic curve、受信者操作特性曲線)**です。縦軸が真陽性率(感度)、横軸が偽陽性率(11-特異度)であることを取り違えないでください。

xychart-beta
  title "ROC曲線(縦軸=感度、横軸=1-特異度)"
  x-axis "偽陽性率(1 - 特異度)" 0 --> 1
  y-axis "真陽性率(感度)" 0 --> 1
  line [0, 0.55, 0.75, 0.86, 0.92, 0.96, 1.0]
  line [0, 0.167, 0.333, 0.5, 0.667, 0.833, 1.0]

上の図で、上に膨らんだ曲線が良い検査のROC曲線、対角線(45度の直線)が「偶然と同じ=まったく識別できない検査」です。曲線が左上の角 (0,1)(0,1) に近づくほど良い(偽陽性率0で感度1=完璧)。曲線上のどの点を選ぶか(=どのカットオフを採用するか)の代表的な基準がユーデン指数(Youden index) J=感度+特異度1J=\text{感度}+\text{特異度}-1 を最大化する点で、これは曲線が左上角から最も離れる点に対応します。ただしユーデン指数が最適カットオフを与えるのは「感度と特異度を等価に扱い、コストを無視し、有病率を考えない」前提のときだけで、臨床的にはコストや有病率に応じて感度寄り/特異度寄りにずらすのが普通です。

4.2 AUC — 曲線の下面積と識別能

ROC曲線の下側の面積(area under the curve, AUC)が、カットオフに依存しない検査の総合的な識別能の要約です。

AUCの確率的解釈(重要). AUCには美しい確率的意味があります。

  AUC=P(ランダムに選んだ患者の検査値>ランダムに選んだ健常者の検査値)  \boxed{\;\mathrm{AUC}=P\bigl(\text{ランダムに選んだ患者の検査値} > \text{ランダムに選んだ健常者の検査値}\bigr)\;}

要するに「病気の人を1人、健康な人を1人ランダムに取ってきたとき、検査値が『病気の人 > 健康な人』と正しく順位づけされる確率」。AUC=0.8\mathrm{AUC}=0.8 なら、ランダムなペアの80%で病気の人の方が高い値を示す、ということです。0.50.5 はコイン投げ(順序がランダム)に対応し、11 は常に病気の人が高い(完全分離)に対応します。

この解釈から、AUCはマン・ホイットニーのU統計量(ウィルコクソンの順位和統計量)と等価であることが導かれます。「2群の値の大小ペアの一致率」がまさにU統計量の定義だからです。つまりROC/AUCはノンパラメトリックな2群比較と地続きで、AUCの検定(AUC=0.5\mathrm{AUC}=0.5 か否か)はマン・ホイットニー検定に対応します。この接続は1級で順位統計量と絡めて問われうる論点です。


5. 第一種・第二種過誤との対応

診断検査の指標は、仮説検定の枠組みときれいに対応します。帰無仮説 H0H_0「疾患なし(健康)」を立て、検査陽性を「H0H_0 を棄却(病気と判定)」とみなします。

検定の枠組み診断検査での対応意味
第一種過誤の確率 α\alphaH0H_0 が真なのに棄却)偽陽性率 =1=1-特異度健康な人を誤って陽性とする
1α1-\alpha特異度健康な人を正しく陰性とする
第二種過誤の確率 β\betaH0H_0 が偽なのに採択)偽陰性率 =1=1-感度病気の人を誤って陰性とする(見逃し)
検出力 1β1-\beta感度病気の人を正しく陽性とする

要するに「特異度は『健康な人を健康と判断する確率』= 1α1-\alpha に、感度は『病気を病気と検出する力』=検出力 1β1-\beta に対応する」。カットオフを動かす操作は、検定の有意水準 α\alpha を動かすことに相当し、α\alpha を厳しくすれば(特異度↑)検出力(感度)が下がる——検定で言う「α\alphaβ\beta のトレードオフ」が、診断検査の「特異度と感度のトレードオフ」そのものなのです。ROC曲線は、α\alpha(横軸 11-特異度)を全範囲で動かしたときの検出力(縦軸 感度)の軌跡だ、と読み替えることもできます。

⚠️ 対応はあくまで「枠組みの類似」です。診断検査では H0H_0 を「健康」に取るのが慣例ですが、これは検査設計者の都合で、検定で H0H_0 をどちらに置くかと同様に約束ごとです。「感度=検出力」「特異度=1α1-\alpha」の対応は、H0H_0=健康と置いたときの結果である点に注意してください。


6. 試験での問われ方(1級)

医薬生物学分野での1級の典型的な問われ方を、論点ごとに整理します(出題範囲・配点は要最新確認)。


7. 引っかけ・頻出論点


よくある疑問(Q&A)

Q1. 感度が99%なのに、陽性と出ても本当に病気なのが2%しかない、というのが信じられません。どこで直観が裏切られているのですか?

直観が見落としているのは「健康な人の母数の大きさ」です。感度99%は「病気の人を99%拾う」という、病気の人だけに関する性能で、健康な人がどれだけいるかは一切勘案していません。有病率0.1%の集団では、病気の人100人に対して健康な人が99,900人もいます。特異度95%でもこの99,900人の5%=4,995人が偽陽性になり、病気の人の真陽性99人を量で圧倒します。陽性者5,094人のうち真の患者は99人だけ、だからPPVは約2%。感度・特異度は「正解集合の中での当たり率」であって、「集団全体での当たり率」ではない——この分母の違いが直観を裏切る正体です。だからまれな病気のスクリーニングでは、陽性をそのまま信じず確定検査につなぐのです。

Q2. なぜPPVは有病率に依存して、感度・特異度は依存しないのですか? 同じ検査の指標なのに不思議です。

「何を分母にして割っているか」が違うからです。感度 P(T+D+)P(T^+\mid D^+) は分母が「病気の人だけ」で、その中で陽性を拾う割合を測ります。この計算には「集団に病気の人が何%いるか(有病率)」は登場しません——病気の人の中での話なので。だから有病率が変わっても感度は不変。一方PPV P(D+T+)P(D^+\mid T^+) は分母が「検査陽性の人全員(病気・健康混在)」で、その混在比率が有病率で決まります。有病率が下がれば陽性者に占める健康な人(偽陽性)の割合が増え、PPVが下がる。ベイズの定理の式 PPV=感度p感度p+(1特異度)(1p)\mathrm{PPV}=\dfrac{\text{感度}\cdot p}{\text{感度}\cdot p+(1-\text{特異度})(1-p)} を見れば、感度・特異度は検査固有の定数として入り、pp(有病率)が別途掛かっている構造が一目で分かります。

Q3. 尤度比をわざわざ使う利点は何ですか? PPVを直接計算すればよくないですか?

利点は「検査の情報量を有病率から切り離せる」ことと「更新が掛け算ひとつで済む」ことです。PPVの式は有病率 pp を含むので、同じ検査でも対象集団(外来/救急/検診で有病率が違う)ごとに計算し直す必要があります。尤度比 LR+=感度/(1特異度)\mathrm{LR+}=\text{感度}/(1-\text{特異度}) は有病率を含まない検査固有の数なので、「この検査は陽性ならオッズを19.8倍にする」と一度言えば、あとは集団ごとの事前オッズに掛けるだけで事後オッズが出ます(事後オッズ=事前オッズ×尤度比)。臨床医が患者ごとに事前確率を見積もり、ノモグラムで事後確率を読む、という実践はこの分離があってこそ成り立ちます。検査の良し悪し(尤度比)と患者の事前確率を別々に扱えるのが尤度比の価値です。

Q4. AUCが「ランダムペアの順位一致確率」になるのはなぜですか? 面積の話だったのに確率が出てくるのが飛躍に感じます。

ROC曲線の下面積を積分の形で書くと、それがそのまま「病気の人の検査値が健康な人の検査値を上回る確率」に等しくなる、という数学的事実があります。直観的には、カットオフを動かして得た各点 (1特異度,感度)(1-\text{特異度},\text{感度}) は「あるカットオフで健康な人をどれだけ通し、病気の人をどれだけ拾うか」の組で、これを全カットオフで積み上げて面積にすると、「病気の検査値分布が健康の検査値分布より右にずれている度合い」を測ることになります。2群の値をすべてペアにして「病気>健康」と正しく並ぶ割合を数えたものが、まさにマン・ホイットニーのU統計量を標本数で割った量で、これがAUCと一致します。だからAUCは面積であり確率であり、同時にノンパラメトリックな2群比較の統計量でもある、という三位一体になっています。

Q5. スクリーニング検査と確定検査で、感度と特異度のどちらを優先すべきですか?

役割が逆です。スクリーニング(ふるい分け)は感度を優先します。目的は「病気を見逃さない」ことで、感度が高ければ偽陰性(見逃し)が少なく、陰性なら安心して除外できます(LR\mathrm{LR-} が小さい検査は陰性で病気を強く否定できる=rule out)。一方確定診断(confirmation)は特異度を優先します。目的は「健康な人を病気と誤らない」ことで、特異度が高ければ偽陽性が少なく、陽性なら確信を持って病気と判断できます(LR+\mathrm{LR+} が大きい検査は陽性で病気を強く確定=rule in)。だから2段構え——感度重視のスクリーニングで広くふるい、陽性者だけを特異度重視の確定検査にかける——がまれな病気の実務標準です。これはQ1の偽陽性パラドックスへの対処そのものでもあります。


まとめ


関連ノート