医療統計学・医療情報学・遠隔医療 · 14
疫学指標・ROC曲線・尤度比
Base Statistical Concepts in Epidemiology. Epidemiological Measures. ROC Curves. Likelihood Ratios
🧠 全体像:疫学の指標はすべて「分子に何を数え、分母に誰を置き、いつからいつまでを見たか」で決まる。そこから risk(確率)と odds(確率/非確率)という2つの表し方が生まれ、群間で比を取れば RR と OR、差を取れば RD になる。そして最後の尤度比だけが、この一族のなかで唯一「検査前の確からしさを、検査後の確からしさへ更新する掛け算」になる——これが ベイズ法そのものである。
有病率と罹患率
診断検査diagnostic testing 診断検査(diagnostic testing)diagnostic testing(診断検査) の評価では有病率 prevalence 有病率(prevalence) prevalence(有病率) を「検査前確率pretest probability検査前確率(pretest probability)pretest probability(検査前確率)」として使った。ここではその中身を精密にする。
| 指標 | 定義 | 数えるもの | 意味 |
|---|---|---|---|
| 時点有病率point prevalence時点有病率(point prevalence)point prevalence(時点有病率) | ある時点の患者数 number of patients患者数(number of patients) number of patients(患者数) ÷ 全人口 | 今いる患者 | 病気である確率。スナップショット |
| 罹患率incidence rate 罹患率(incidence rate)incidence rate(罹患率) (incidence、累積罹患率cumulative incidence累積罹患率(cumulative incidence)cumulative incidence(累積罹患率)) | ある期間の新規発症数 ÷ 期間開始時のリスク保有人口 | 新しく生じた患者 | 病気になる確率。動態 |
| 罹患率密度incidence density 罹患率密度(incidence density)incidence density(罹患率密度) (incidence rate、IR) | 期間内の新規発症数 ÷ 総観察人時間 person-time人時間(person-time) person-time(人時間) | 新規発症 | 単位時間あたりの発症の速さ |
有病率prevalence 有病率(prevalence)prevalence(有病率) も罹患率 incidence rate 罹患率(incidence rate) incidence rate(罹患率) も、割合(%)でも「1000人あたり」「10万人あたり」でも表せる。稀な疾患ほど分母を大きく取る。
⚠️ 罹患率incidence rate 罹患率(incidence rate)incidence rate(罹患率) には必ず観察期間を添える。 「10例発生した」は1週間の話か1年の話かで意味がまったく違う。ただし 累積罹患率cumulative incidence 累積罹患率(cumulative incidence)cumulative incidence(累積罹患率) は「/年」という単位をもたない。 これは無次元の確率であり、期間は数値の一部ではなく別添えの情報として「年間罹患率 incidence rate 罹患率(incidence rate) incidence rate(罹患率) は0.1%」と述べる。「/年」という単位を本当にもつのは、次の罹患率密度 incidence density 罹患率密度(incidence density) incidence density(罹患率密度) のほうである。
有病率と罹患率は独立に動く
💡 罹患率incidence rate 罹患率(incidence rate)incidence rate(罹患率) が上がっているのに有病率 prevalence 有病率(prevalence) prevalence(有病率) が下がる、ということが起こりうる。これは矛盾ではない。有病率prevalence 有病率(prevalence)prevalence(有病率) は「溜まっている量」、罹患率incidence rate 罹患率(incidence rate)incidence rate(罹患率) は「流入の速さ」だからである。
flowchart TD
A["罹患(新規発症)<br>= 流入"] --> B["有病(現在の患者)<br>= 溜まっている水位"]
B --> C["治癒<br>= 流出"]
B --> D["死亡<br>= 流出"]
E["流出が流入より速くなる<br>(治療の改善、あるいは急速な死亡)"] --> F["<span class='jp-term jp-term-diagram' title='incidence rate'>罹患率</span>が上がっても<br><span class='jp-term jp-term-diagram' title='prevalence'>有病率</span>は下がる"]
C --> E
D --> E
⚠️ したがって有病率prevalence 有病率(prevalence)prevalence(有病率) の低下を「発症が減った」の証拠として読んではいけない。生存期間が短くなっただけかもしれない。逆に治療の進歩で死ななくなれば、発症が減っていても有病率 prevalence 有病率(prevalence) prevalence(有病率) は上がる。
研究デザインとの対応
| 指標 | どんな研究から推定できるか |
|---|---|
| 有病率prevalence有病率(prevalence)prevalence(有病率) | 横断研究cross-sectional study 横断研究(cross-sectional study)cross-sectional study(横断研究) (ある時点で全員を測る)で推定できる |
| 罹患率incidence rate罹患率(incidence rate)incidence rate(罹患率) | 横断研究cross-sectional study 横断研究(cross-sectional study)cross-sectional study(横断研究) では推定できない。追跡(コホート)が要る |
💡 だから因果を論じたいときは罹患率 incidence rate 罹患率(incidence rate) incidence rate(罹患率) のほうが強い。有病率prevalence 有病率(prevalence)prevalence(有病率) は「発症のしやすさ」と「病気でいる期間の長さ」が混ざった量であり、原因と結果を分離しにくい。
罹患率密度(人年法)
全員を同じ期間だけ観察できることは稀である。転入・転出・脱落・死亡があると、単純な「発症数 ÷ 人数number of people人数(number of people)number of people(人数)」が計算できない。そこで一人ひとりを観察できた時間で重みづける。分母が人数 number of people 人数(number of people) number of people(人数) ではなく人時間person-time人時間(person-time)person-time(人時間)になる。
10人を観察し、観察時間の合計が45人年()、そのうち5人に発症があったとする。
⚠️ この指標では時間が単位の一部である(「100人年あたり11.1」)。ここが累積罹患率 cumulative incidence 累積罹患率(cumulative incidence) cumulative incidence(累積罹患率) との決定的な違いで、罹患率密度incidence density 罹患率密度(incidence density)incidence density(罹患率密度) は確率ではないので1を超えうる(1人が複数回発症する疾患なら容易に超える)。
リスクとオッズ
有病率prevalence 有病率(prevalence)prevalence(有病率) も罹患率 incidence rate 罹患率(incidence rate) incidence rate(罹患率) も確率であり、疫学ではまとめて risk(リスク) と呼ぶ。同じ確率を「起こる/起こらない」の比で表したものが odds(オッズoddsオッズ(odds)odds(オッズ)) である。
| 定義 | 3%の例 | 60%の例 | |
|---|---|---|---|
| リスク | 患者数number of patients患者数(number of patients)number of patients(患者数) ÷ 全体 | 0.03 | 0.60 |
| オッズoddsオッズ(odds)odds(オッズ) | 患者数number of patients患者数(number of patients)number of patients(患者数) ÷ 非患者数 number of patients患者数(number of patients) number of patients(患者数) | 0.0309 | 1.50 |
2つは同じ情報の別表現で、可逆に行き来できる。
💡 リスクが小さいうちはリスクとオッズ odds オッズ(odds) odds(オッズ) はほとんど同じ(0.03 と 0.0309)。しかしリスクが大きくなるとオッズ odds オッズ(odds) odds(オッズ) は急速に発散 divergence 発散(divergence) divergence(発散) する(0.60 のとき 1.50、0.90 のとき 9.0)。この乖離が、後で見るオッズ比 odds ratio, OR オッズ比(odds ratio, OR) odds ratio, OR(オッズ比) の誇張の正体である。
⚠️ 有病率prevalence 有病率(prevalence)prevalence(有病率) を「リスク」と呼ぶ習慣があるが、正確には有病率 prevalence 有病率(prevalence) prevalence(有病率) は割合proportion 割合(proportion)proportion(割合) であって、期間をもつ発症確率という意味でのリスクではない。「時点での病気である確率」と「期間内に病気になる確率」は別物なので、どちらを計算しているかは常に明示する。
群間比較——RR・OR・差
危険因子の有無で2群に分け、それぞれのリスク/オッズodds オッズ(odds)odds(オッズ) を比べる。
危険因子ありの群を添字 1、なしの群を添字 0 とする。
| 比較の型 | 名称 | 式 | 種類 |
|---|---|---|---|
| リスクの比 | リスク比risk ratioリスク比(risk ratio)risk ratio(リスク比) RR(相対リスクrelative risk, RR相対リスク(relative risk, RR)relative risk, RR(相対リスク)) | 相対指標 | |
| オッズodds オッズ(odds)odds(オッズ) の比 | オッズ比odds ratio, ORオッズ比(odds ratio, OR)odds ratio, OR(オッズ比) OR | 相対指標 | |
| リスクの差 | リスク差risk differenceリスク差(risk difference)risk difference(リスク差) RD | 絶対指標 | |
| オッズodds オッズ(odds)odds(オッズ) の差 | オッズodds オッズ(odds)odds(オッズ) 差 OD | 絶対指標 |
2×2表の4つのセルを (曝露あり・発症あり)、(曝露あり・発症なし)、(曝露なし・発症あり)、(曝露なし・発症なし)とすれば、
⚠️ 略語が壊滅的に一貫していない。 有病率prevalence 有病率(prevalence)prevalence(有病率) から作れば PR / POR、累積罹患率cumulative incidence 累積罹患率(cumulative incidence)cumulative incidence(累積罹患率) から作れば IR / IOR、罹患率密度incidence density 罹患率密度(incidence density)incidence density(罹患率密度) から作れば IRR / IROR と呼ばれることがあり、しかも「IR」は罹患率密度 incidence density 罹患率密度(incidence density) incidence density(罹患率密度) そのものの略語でもある。R が risk なのか rate なのか ratio なのかも文脈依存である。結論conclusion 結論(conclusion)conclusion(結論) :略語に頼らず「何を分子・分母にして計算したか」を毎回言葉で書く。 試験でも論文でもこれが唯一安全な作法である。
オッズ比はリスク比ではない
ここが本ノートで最も臨床的に重要な点である。アウトカムall-or-none outcomes アウトカム(all-or-none outcomes)all-or-none outcomes(アウトカム) が稀でないとき、OR は RR を1から遠ざける向きに系統的に誇張する1。
| 例 | 曝露群exposed group 曝露群(exposed group)exposed group(曝露群) の発症 | 非曝露群unexposed group 非曝露群(unexposed group)unexposed group(非曝露群) の発症 | RR | OR |
|---|---|---|---|---|
| 高頻度アウトカム all-or-none outcomesアウトカム(all-or-none outcomes) all-or-none outcomes(アウトカム) | 60/100(60%) | 30/100(30%) | 2.00 | 3.50 |
| 治療で減らす例 | 20/100(20%) | 40/100(40%) | 0.50 | 0.375 |
| 稀なアウトカム all-or-none outcomesアウトカム(all-or-none outcomes) all-or-none outcomes(アウトカム) | 2/1000(0.2%) | 4/1000(0.4%) | 0.50 | 0.499 |
a, b, c, d = 60, 40, 30, 70 # 曝露あり(発症+/−)、曝露なし(発症+/−)
rr = (a/(a+b)) / (c/(c+d)) # 2.00
odds_ratio = (a/b) / (c/d) # 3.50 — 同じデータで RR の 1.75 倍
print(rr, odds_ratio)
💡 誇張の理由は前節の通り。オッズodds オッズ(odds)odds(オッズ) はリスクが大きくなるほどリスクから離れて膨らむので、両群のリスクが大きいほど比の差が開く。アウトカムall-or-none outcomes アウトカム(all-or-none outcomes)all-or-none outcomes(アウトカム) が稀(およそ10%未満)なときだけ OR ≈ RR が成り立つ。ここで「稀」でなければならないのはアウトカムall-or-none outcomes アウトカム(all-or-none outcomes)all-or-none outcomes(アウトカム) であって曝露ではない。曝露が稀でもアウトカム all-or-none outcomes アウトカム(all-or-none outcomes) all-or-none outcomes(アウトカム) が高頻度なら近似は破綻する。
⚠️ 「オッズ比odds ratio, ORオッズ比(odds ratio, OR)odds ratio, OR(オッズ比) 3.5 だからリスクが3.5倍」と読むのは誤りである。上の例で実際のリスクは2倍にすぎない。臨床文献で OR を見たら、まずアウトカムall-or-none outcomes アウトカム(all-or-none outcomes)all-or-none outcomes(アウトカム) の発生頻度を探す。10%を大きく超えていれば、その OR を倍率として口に出してはいけない。
では、なぜ OR を使うのか
RR のほうが解釈しやすいのに OR が使われ続けるのには理由がある。
| 場面 | なぜ OR でなければならないか |
|---|---|
| 症例対照研究case-control study症例対照研究(case-control study)case-control study(症例対照研究) | 症例と対照を研究者が選んで集めるので、群のサイズ比が人為的である。リスクそのものを推定できないため RR が計算できない。OR は選び方に依存せず、稀なアウトカム all-or-none outcomes アウトカム(all-or-none outcomes) all-or-none outcomes(アウトカム) なら RR の良い近似になる |
| ロジスティック回帰 | モデルが推定しているのはログオッズ odds オッズ(odds) odds(オッズ) であり、係数を指数化すると自動的に OR になる。交絡confounding 交絡(confounding)confounding(交絡) を調整しながら二値アウトカム all-or-none outcomes アウトカム(all-or-none outcomes) all-or-none outcomes(アウトカム) を扱う標準手段がこれである |
| 前後を入れ替えたい場面 | OR は対称である(後述) |
交絡confounding 交絡(confounding)confounding(交絡) の調整そのものについては 交絡confounding 交絡(confounding)confounding(交絡) と重回帰を参照。
💡 OR の対称性。 上表2行目で、死亡の OR は 0.375、生存の OR は 2.667 でちょうど逆数になる。群を入れ替えても同じく逆数になる。一方 RR は非対称で、死亡の RR 0.50 に対し生存の RR は 1.33 であって逆数ではない。この対称性のおかげで、OR は「どちらを結果と呼ぶか」に左右されず、回帰モデルregression model 回帰モデル(regression model)regression model(回帰モデル) の中で扱いやすい。
⭐ 使い分けの原則:推定と統計モデルには OR を使ってよいが、患者や同僚に伝えるときは絶対指標(リスク差risk differenceリスク差(risk difference)risk difference(リスク差)、NNTNNT(number needed to treat)、実際の人数 number of people人数(number of people) number of people(人数))に戻す。
絶対指標と相対指標
相対指標(RR・OR・相対リスク減少relative risk reduction相対リスク減少(relative risk reduction)relative risk reduction(相対リスク減少))は元のリスクの大きさを捨てている。だから同じ数字が、意味の異なる2つの状況を区別できない。
マンモグラフィの「25%減」
「マンモグラフィmammography マンモグラフィ(mammography)mammography(マンモグラフィ) は乳癌死のリスクを25%減らす」——では検診を受けた1000人のうち250人は乳癌で死ぬということか?
否。 相対リスク減少relative risk reduction 相対リスク減少(relative risk reduction)relative risk reduction(相対リスク減少) 25%は、ベースラインのリスクにかかる割合である。実際には検診なしで1000人あたり約4人が乳癌で死亡し、検診ありで約3人になる2。絶対リスク減少absolute risk reduction 絶対リスク減少(absolute risk reduction)absolute risk reduction(絶対リスク減少) は1000人あたり1人である。
| 提示 | 数値 | 印象 |
|---|---|---|
| 相対リスク減少relative risk reduction相対リスク減少(relative risk reduction)relative risk reduction(相対リスク減少) | 25%減 | 大きく見える |
| 絶対リスク減少absolute risk reduction絶対リスク減少(absolute risk reduction)absolute risk reduction(絶対リスク減少) | 1000人あたり1人 | 実際の大きさ |
| NNT(1人を救うのに必要な人数 number of people人数(number of people) number of people(人数)) | 約1000人 | 検診の負担が見える |
同じ治療、違う見え方
無治療での死亡確率が10%の状況で、次の2つの薬のどちらを選ぶか。
- 薬A:死亡リスクを80%減らす
- 薬B:100人治療すると8人の死亡を防ぐ
⭐ どちらも同一である。 10% の80%減は 10 − 8 = 2、すなわち100人中 philtrum 人中(philtrum) philtrum(人中) 10人の死亡が2人になる=8人を救う。ところが実際に患者に選ばせると、相対的な提示では60%が治療を選び、絶対的absolute 絶対的(absolute)absolute(絶対的) な提示では15%しか選ばなかった3。
💡 これは患者の無知の問題ではない。同じ情報の異なる形式が異なる決定を生むというフレーミング効果であり、医師medical doctor 医師(medical doctor)medical doctor(医師) 自身も同じ影響を受ける2。臨床の場面では絶対指標を使うのが原則である(→ 治療のリスクを伝える)。
ROC曲線
診断検査diagnostic testing 診断検査(diagnostic testing)diagnostic testing(診断検査) の評価で見たとおり、連続量の検査ではカットオフ値 cutoff (value) カットオフ値(cutoff (value)) cutoff (value)(カットオフ値) を動かすと感度と特異度が反対向きに動く。ROCROC(receiver operating characteristic)曲線はカットオフ cut-off カットオフ(cut-off) cut-off(カットオフ) を全範囲で動かしたときの (1 − 特異度, 感度) の軌跡 trajectory 軌跡(trajectory) trajectory(軌跡) である。
flowchart TD
A["連続量の<span class='jp-term jp-term-diagram' title='Labs'>検査値</span>"] --> B["<span class='jp-term jp-term-diagram' title='cut-off'>カットオフ</span>を動かす"]
B --> C["<span class='jp-term jp-term-diagram' title='cut-off'>カットオフ</span>を下げる<br>→ 感度↑・特異度↓"]
B --> D["<span class='jp-term jp-term-diagram' title='cut-off'>カットオフ</span>を上げる<br>→ 特異度↑・感度↓"]
C --> E["<span class='jp-term jp-term-diagram' title='receiver operating characteristic'>ROC</span>曲線上の1点"]
D --> E
E --> F["曲線全体=検査そのものの識別能<br>(<span class='jp-term jp-term-diagram' title='cut-off'>カットオフ</span>に依存しない)"]
識別能の違う2つの検査と、無情報の基準線を重ねる。
xychart-beta
title "ROC曲線(識別能の違う2つの検査)"
x-axis "偽陽性率(1 − 特異度)" [0, 0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 0.85, 1.0]
y-axis "感度(真陽性率)" 0 --> 1
line [0, 0.672, 0.804, 0.888, 0.951, 0.976, 0.988, 0.994, 0.999, 1, 1]
line [0, 0.29, 0.442, 0.586, 0.745, 0.835, 0.894, 0.933, 0.979, 0.994, 1]
line [0, 0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 0.85, 1.0]
| 線 | 位置 | AUCAUC(area under the curve) |
|---|---|---|
| 最も上に膨らむ線 | 左上に強く張り出す | 0.96(良好な検査) |
| 中間の線 | 緩やかに張り出す | 0.86(中程度の検査) |
| 直線 | 左下から右上への対角線 | 0.50(無情報=コイン投げ) |
⭐ 対角線が基準である。対角線上では、感度を上げた分だけ偽陽性率 false positive rate 偽陽性率(false positive rate) false positive rate(偽陽性率) も同じだけ上がる——つまり検査値 Labs 検査値(Labs) Labs(検査値) が疾患について何も語っていない。曲線が対角線から左上へ離れているほど識別能が高い。
💡 曲線が左上の角に近いほど良い理由は、その点で「感度が高く、かつ偽陽性率 false positive rate 偽陽性率(false positive rate) false positive rate(偽陽性率) が低い」を同時に達成できているからである。理想の検査は (0, 1) の一点を通り、AUC = 1 になる。逆に曲線が対角線より下に来た場合、それは検査が無価値なのではなく、判定の向きが逆であることを意味する(高値を陽性としているが、実際は低値が疾患を示している)。
⚠️ 曲線の形も見る。AUC が同じでも、左端で急に立ち上がる曲線と全体に緩やかな曲線では臨床的な価値が違う。前者は「偽陽性をほとんど出さない運用点」を持てるが、後者は持てない。実際に使うのは曲線上のただ1点なので、面積の要約だけで採否を決めない。
AUC の本当の意味
⚠️ AUC(曲線下面積area under the curve曲線下面積(area under the curve)area under the curve(曲線下面積))は「正診率diagnostic accuracy正診率(diagnostic accuracy)diagnostic accuracy(正診率)」でも「精度」でもない。AUC は、無作為に選んだ疾患者の検査値 Labs 検査値(Labs) Labs(検査値) が、無作為に選んだ健常者の検査値 Labs 検査値(Labs) Labs(検査値) より高くなる確率である4。疾患者の検査値 Labs 検査値(Labs) Labs(検査値) を 、健常者の検査値 Labs 検査値(Labs) Labs(検査値) を と書けば、
すなわち AUC が測っているのは順位づけの能力であって、特定のカットオフ cut-off カットオフ(cut-off) cut-off(カットオフ) での当たり外れではない。
| AUC | 意味 |
|---|---|
| 0.5 | 順位づけがコイン投げと同等。分布が完全に重なっている |
| 0.8 | 疾患者のほうが高い値をとるペアが80% |
| 1.0 | 完全に分離している |
💡 この定義から2つのことが直ちに出る。第一に、AUC は有病率 prevalence 有病率(prevalence) prevalence(有病率) に依存しない(順位の比較だけなので、患者と健常者の混合比が変わっても不変)。第二に、AUC が高くても臨床的に使えるとは限らない——実際に使うのは曲線上のただ1点であり、その1点での感度・特異度が要求水準に届いていなければ意味がない。
単一の要約値で検査を選ばない
臨床では感度と特異度が同じ重みをもつことは稀である。
| 状況 | 優先するもの | 理由 |
|---|---|---|
| スクリーニング | 高い感度 | 見落としが致命的。偽陽性は確認検査 confirmatory test 確認検査(confirmatory test) confirmatory test(確認検査) で拾える |
| 侵襲的治療invasive treatment 侵襲的治療(invasive treatment)invasive treatment(侵襲的治療) の適応判断 | 高い特異度 | 偽陽性が不要な手術・化学療法につながる |
⚠️ したがって AUC や Youden 指数の大小だけで検査を選ぶのは、多くの場合ミスリーディングである。臨床上必要な側(感度または特異度)が要求水準を満たす領域を先に決め、その領域の中で曲線が高いほうの検査を選ぶ。
Youden 指数は「ROC 曲線上で左上隅 に最も近い点」と説明されることがあるが、正確には
であり、これはROC 曲線と対角線との垂直距離の最大値である。左上隅からのユークリッド距離を最小化する点とは一般に一致しない。どちらも「感度と特異度を等価に扱う」という同じ前提を置いており、その前提こそが臨床では成り立たないことが多い。
from sklearn.metrics import roc_curve, roc_auc_score
fpr, tpr, thresholds = roc_curve(y_true, score) # y_true: 1=疾患あり
auc = roc_auc_score(y_true, score) # = 疾患者>健常者 となる確率
youden = (tpr - fpr).max() # J = 感度 + 特異度 − 1
💡 出力の読む順序
- 効果量 — AUC、および臨床上必要な側(感度 or 特異度)の実際の値
- 臨床的relevance — その感度・特異度で見落とし/過剰治療は何人になるか
- 信頼区間confidence interval信頼区間(confidence interval)confidence interval(信頼区間) — AUC・感度・特異度の CI。小標本では驚くほど広い
- p値 — 最後。「AUC が 0.5 と有意に異なる」は「使える検査だ」を意味しない
尤度比
ここまでの指標は集団を記述するものだった。尤度比likelihood ratio, LR 尤度比(likelihood ratio, LR)likelihood ratio, LR(尤度比) は、目の前の一人について検査前の確からしさを検査後の確からしさへ更新する5。
| 定義 | 条件付き確率として | 意味 | |
|---|---|---|---|
| 陽性尤度比positive likelihood ratio陽性尤度比(positive likelihood ratio)positive likelihood ratio(陽性尤度比) LR+ | 陽性という結果が、疾患のオッズ odds オッズ(odds) odds(オッズ) を何倍にするか | ||
| 陰性尤度比negative likelihood ratio陰性尤度比(negative likelihood ratio)negative likelihood ratio(陰性尤度比) LR− | 陰性という結果が、疾患のオッズ odds オッズ(odds) odds(オッズ) を何倍にするか |
右の列が本質である。尤度比は「その結果が、疾患ありのときと疾患なしのときで、どれだけ起こりやすさが違うか」の比にほかならない。
そして中心にあるのが次の一行である。
flowchart TD
A["<span class='jp-term jp-term-diagram' title='pretest probability'>検査前確率</span><br>(<span class='jp-term jp-term-diagram' title='prevalence'>有病率</span>・病歴・診察)"] --> B["検査前<span class='jp-term jp-term-diagram' title='odds'>オッズ</span><br>O = p / (1 − p)"]
B --> C["× LR+(陽性のとき)<br>または × LR−(陰性のとき)"]
C --> D["<span class='jp-term jp-term-diagram' title='post-test odds'>検査後オッズ</span>"]
D --> E["<span class='jp-term jp-term-diagram' title='post-test probability'>検査後確率</span><br>p = O / (1 + O)"]
E --> F["次の検査の<span class='jp-term jp-term-diagram' title='pretest probability'>検査前確率</span>になる"]
F --> A
⭐ これはベイズの定理そのものである。 ベイズの定理
を疾患ありと疾患なしについて2本書き、辺々で割ると分母 が消えて上のオッズ odds オッズ(odds) odds(オッズ) 形が残る。検査前確率pretest probability 検査前確率(pretest probability)pretest probability(検査前確率) が事前確率 pretest probability事前確率(pretest probability) pretest probability(事前確率)、尤度比が尤度 likelihood 尤度(likelihood) likelihood(尤度) の比、検査後確率post-test probability 検査後確率(post-test probability)post-test probability(検査後確率) が事後確率にあたる。詳しい導出と一般形は ベイズ法で扱う。
有病率に依存しないこと
⭐ LR+ と LR− は感度と特異度だけから作られるので、有病率prevalence 有病率(prevalence)prevalence(有病率) に依存しない。 ここが PPV/NPV との決定的な違いである。
| 量 | 有病率prevalence 有病率(prevalence)prevalence(有病率) への依存 | 別集団へ持ち出せるか |
|---|---|---|
| 感度・特異度 | 依存しない | ○ |
| LR+ ・ LR− | 依存しない | ○ |
| PPV・NPV | 強く依存する | ✗ |
💡 だから教科書や総説は尤度比を表にして載せられる。PPV は載せられない——読者の診療科・地域・受診経路によって有病率 prevalence 有病率(prevalence) prevalence(有病率) が違うからである。尤度比を受け取った読者は、自分の集団の検査前確率 pretest probability 検査前確率(pretest probability) pretest probability(検査前確率) を掛け合わせて自分の PPV を作る。
数値でたどる
感度90%・特異度90%の検査を考える。
| 検査前確率pretest probability検査前確率(pretest probability)pretest probability(検査前確率) | 検査前オッズ oddsオッズ(odds) odds(オッズ) | 陽性後オッズ oddsオッズ(odds) odds(オッズ) | 陽性後確率 | 陰性後確率 |
|---|---|---|---|---|
| 3%(無症状の集団) | 0.0309 | 0.278 | 21.8% | 0.34% |
| 20%(症状のある集団) | 0.25 | 2.25 | 69.2% | 2.7% |
se, sp, pre = 0.90, 0.90, 0.03
lr_pos = se / (1 - sp) # 9.0
odds = pre / (1 - pre) * lr_pos # 検査前オッズ × LR+
print(odds / (1 + odds)) # 0.218 → 検査後確率 21.8%
⚠️ この2行が示すのは、まったく同じ検査が同じ陽性を返しても意味が違うということである。3%の集団では陽性でもなお約78%は疾患をもたない。20%の集団では陽性なら約7割が疾患をもつ。検査は情報を足すだけで、検査前確率pretest probability 検査前確率(pretest probability)pretest probability(検査前確率) を置き換えない。
💡 人はここを両方向に外す。低有病率 prevalence 有病率(prevalence) prevalence(有病率) での陽性的中率 positive predictive value 陽性的中率(positive predictive value) positive predictive value(陽性的中率) は過大評価され(22%を「かなり高い」と感じる)、有病率prevalence 有病率(prevalence)prevalence(有病率) が上がったときの上昇は過小評価される。だから直観に頼らず、必ず上の掛け算をする。
複数の検査・症状を重ねる
尤度比の最大の実用的利点は、掛け算で積み重ねられることである。
上の検査を独立に2回行い、両方陽性だったとすると 、すなわち検査後確率 post-test probability検査後確率(post-test probability) post-test probability(検査後確率) 71.5%。
対数を取れば
となり、各所見の「重み」を足し算で扱える。ロジスティック回帰の係数がまさにこの にあたる。
⚠️ ただしこの掛け算は、疾患の有無を与えたときに各検査が条件付き独立であることを前提にしている。 現実の症状・所見はたいてい互いに相関しており(同じ病態生理から生じるので当然である)、独立を仮定して掛け合わせると検査後確率post-test probability 検査後確率(post-test probability)post-test probability(検査後確率) を過大に見積もる。所見を3つ4つと重ねるほど誤差は増幅する。臨床予測ルールclinical prediction rule 臨床予測ルール(clinical prediction rule)clinical prediction rule(臨床予測ルール) が「LR を掛け合わせる」ではなく「多変量モデルで係数を推定する」形で作られているのはこのためである。
尤度比の目安
| LR+ | 検査後確率post-test probability 検査後確率(post-test probability)post-test probability(検査後確率) の動き | LR− | 検査後確率post-test probability 検査後確率(post-test probability)post-test probability(検査後確率) の動き |
|---|---|---|---|
| > 10 | 大きく上げる(診断を確定に近づける) | < 0.1 | 大きく下げる(除外に近づける) |
| 5 – 10 | 中程度に上げる | 0.1 – 0.2 | 中程度に下げる |
| 2 – 5 | わずかに上げる | 0.2 – 0.5 | わずかに下げる |
| 1 – 2 | ほとんど動かさない | 0.5 – 1 | ほとんど動かさない |
⚠️ の検査は情報をまったく持たない。 のとき となり、、つまり検査前確率 pretest probability 検査前確率(pretest probability) pretest probability(検査前確率) は1ミリも動かない。「感度が高いから良い検査」ではなく、感度と特異度の組が の線からどれだけ離れているかが検査の価値を決める(これは ROC 曲線が対角線からどれだけ離れているかと同じことである)。
まとめ
- 有病率prevalence 有病率(prevalence)prevalence(有病率) は「病気である確率」、罹患率incidence rate 罹患率(incidence rate)incidence rate(罹患率) は「病気になる確率」。罹患率incidence rate 罹患率(incidence rate)incidence rate(罹患率) が上がっても有病率 prevalence 有病率(prevalence) prevalence(有病率) は下がりうる(流入と流出は別)。全員を同じ期間観察できないときは人年で割った罹患率密度 incidence density 罹患率密度(incidence density) incidence density(罹患率密度) を使い、これだけは時間を単位にもつ
- リスク とオッズ oddsオッズ(odds) odds(オッズ) は同じ情報の別表現。 が小さいうちは一致し、大きくなるとオッズ odds オッズ(odds) odds(オッズ) が発散 divergence 発散(divergence) divergence(発散) する
- OR は RR ではない。 アウトカムall-or-none outcomes アウトカム(all-or-none outcomes)all-or-none outcomes(アウトカム) が高頻度なら OR は RR を大きく誇張する(60% vs 30% で RR 2.0・OR 3.5)。OR が不可避なのは症例対照研究case-control study症例対照研究(case-control study)case-control study(症例対照研究)とロジスティック回帰で、これは OR がリスクを推定せずに済み、かつ対称だからである
- 相対指標は元のリスクを捨てている。患者に伝えるときは絶対リスク absolute risk絶対リスク(absolute risk) absolute risk(絶対リスク)・NNT・実人数 number of people 人数(number of people) number of people(人数) に戻す。同じ効果でも相対提示では60%、絶対提示では15%しか治療を選ばない
- ——無作為な疾患者の値が無作為な健常者の値を上回る確率。有病率prevalence 有病率(prevalence)prevalence(有病率) に依存しない順位づけの指標であり、正診率diagnostic accuracy 正診率(diagnostic accuracy)diagnostic accuracy(正診率) ではない。AUC や Youden 指数の大小だけで検査を選ばず、臨床上必要な感度/特異度の水準を先に決める
- 、、そして 。感度・特異度だけで決まるので有病率prevalence 有病率(prevalence)prevalence(有病率) に依存せず、集団をまたいで持ち運べる
- これはベイズの定理の臨床版である(→ ベイズ法)。複数所見の掛け合わせは条件付き独立を仮定しており、相関した所見では検査後確率 post-test probability 検査後確率(post-test probability) post-test probability(検査後確率) を過大評価する
出典
- 1.When can odds ratios mislead?(BMJ(著者 Huw Talfryn Oakley Davies, Iain Kinloch Crombie, Manouche Tavakoli)・1998)アウトカムが稀でないとき、オッズ比はリスク比を1から遠ざける向きに系統的に誇張すること。オッズ比をリスク比として読む誤りが臨床文献で広く見られること閲覧 2026-08-17
- 2.Helping Doctors and Patients Make Sense of Health Statistics(Psychological Science in the Public Interest(著者 Gerd Gigerenzer, Wolfgang Gaissmaier, Elke Kurz-Milcke ら)・2007)マンモグラフィの「乳癌死を25%減らす」が絶対値では1000人あたり約4人→約3人であること。相対指標が効果を過大に見せ、医師も患者も誤解すること閲覧 2026-08-17
- 3.The framing effect of relative and absolute risk(Journal of General Internal Medicine(著者 David J. Malenka, John A. Baron, Sarah Johansen ら)・1993)同一の治療効果を相対的に提示すると60%が治療を選び、絶対的に提示すると15%しか選ばなかったこと(470名の外来患者)閲覧 2026-08-17
- 4.The meaning and use of the area under a receiver operating characteristic (ROC) curve(Radiology(著者 James A. Hanley, Barbara J. McNeil)・1982)ROC曲線下面積が「無作為に選んだ疾患者の検査値が、無作為に選んだ健常者の検査値より大きくなる確率」に等しいこと閲覧 2026-08-17
- 5.Diagnostic tests 4: likelihood ratios(BMJ(著者 Jonathan J. Deeks, Douglas G. Altman)・2004)尤度比の定義と使い方、検査後オッズ=検査前オッズ×尤度比という関係、尤度比が有病率に依存しないこと閲覧 2026-08-17