井出草平の研究ノート

感度・特異度の計算[R]

2×2の分割表における感度・特異度その他、もろもろの計算方法について。

epiRパッケージを利用する。 www.rdocumentation.org

例1

Scott et al. (2008)表1より。新しい診断テストが1586人の患者に試行された。疾患陽性の744人の患者のうち、670人が検査陽性であった。病気が陰性だった842人の患者のうち、640人が検査陰性だった。検査が陽性となる確率は? 診断に必要な数は?

テーブルの作成

dat1 <- as.table(matrix(c(670,202,74,640), nrow = 2, byrow = TRUE))
colnames(dat1) <- c("Dis+","Dis-")
rownames(dat1) <- c("Test+","Test-")
dat1

library(epiR)
rval1 <- epi.tests(dat1, conf.level = 0.95)
print(rval1)

結果

Point estimates and 95 % CIs:
---------------------------------------------------------
Apparent prevalence                    0.55 (0.52, 0.57)
True prevalence                        0.47 (0.44, 0.49)
Sensitivity                            0.90 (0.88, 0.92)
Specificity                            0.76 (0.73, 0.79)
Positive predictive value              0.77 (0.74, 0.80)
Negative predictive value              0.90 (0.87, 0.92)
Positive likelihood ratio              3.75 (3.32, 4.24)
Negative likelihood ratio              0.13 (0.11, 0.16)
---------------------------------------------------------
  • Apparent prevalence 見かけの有病率
  • True prevalence 真の有病率
  • Sensitivity 感度
  • Specificity 特異度
  • Positive predictive value 陽性適中率(陽性予測値)
  • Negative predictive value 陰性適中率(陽性予測値)
  • Positive likelihood ratio 陽性尤度比
  • Negative likelihood ratio 陰性尤度比

見かけの有病率

見かけの有病率とは、診断テストで陽性となった動物の数を、テストしたサンプルの魚の総数で割ったもの。 真の有病率とは、実際に罹患した動物の数を集団の中の個体数で割ったもの。

陽性尤度比

陽性尤度比とは、検査において、有病者が無病者よりも何倍陽性になりやすいか、を示す値。真陽性率/偽陽性率で与えられる。

summary

summary(rval1)

consoleに入れる。

                 est      lower      upper
aprev     0.54981084  0.5249373  0.5744996
tprev     0.46910467  0.4443055  0.4940184
se        0.90053763  0.8767462  0.9210923
sp        0.76009501  0.7297765  0.7885803
diag.acc  0.82597730  0.8064049  0.8443346
diag.or  28.68611185 21.5181917 38.2417364
nnd       1.51370055  1.4091004  1.6487431
youden    0.66063265  0.6065226  0.7096726
ppv       0.76834862  0.7388926  0.7959784
npv       0.89635854  0.8716393  0.9177402
plr       3.75372618  3.3206884  4.2432346
nlr       0.13085517  0.1050643  0.1629771
pro       0.45018916  0.4255004  0.4750627
pri       0.54981084  0.5249373  0.5744996
pfp       0.23990499  0.2114197  0.2702235
pfn       0.09946237  0.0789077  0.1232538

検査の感度は0.90(95%CI 0.88~0.92)。検査の特異性は0.76(95%CI 0.73~0.79)。検査陽性の尤度比は3.75(95%CI 3.32~4.24)。
診断に必要な人数はnndをみる。1.51人(95%CI 1.41~1.65)。10人の陽性者を出すためには、約15人を検査する必要がある。

例2

心筋梗塞のリスクが高い患者を特定するためのバイオマーカーアッセイが開発された。この検査法は、0から1までの連続したスケールで変化する。研究者は、バイオマーカー検査の結果が0.60以上であれば、患者は検査陽性、つまり今後12カ月間に心筋梗塞を発症する危険性が高いと考えている。

上記の情報と一致するデータを作成する。母集団における高リスク被験者の有病率が0.35であると仮定する。

set.seed(1234)
dat2 <- data.frame(out = rbinom(n = 200, size = 1, prob = 0.35), 
   bm = runif(n = 200, min = 0, max = 1))

バイオマーカー検査の結果に応じて、被験者を検査陽性または検査陰性に分類する。

dat2$test <- ifelse(dat2$bm >= 0.6, 1, 0)

2×2の表を生成。

tab2 <- table(dat2$test, dat2$out)[2:1,2:1]
rval2 <- epi.tests(tab2, conf.level = 0.95)

その他指標の計算の仕方と解釈

aprev:apparent prevalence.
aprev:見かけ上の有病率。

tprev: true prevalence.
tprev:真の有病率。

se: test sensitivity.
se:テスト感度。

sp: test specificity.
sp:テストの特異性。

diag.acc: diagnostic accuracy.
diag.acc:診断精度。

diag.or: diagnostic odds ratio.
diag.or:診断オッズ比。

nnd: number needed to diagnose.
nnd:診断に必要な数。

youden: Youden's index.

ppv: positive predictive value.
ppv:陽性適中率(陽性予測値)。

npv: negative predictive value.
npv:陰性適中率(陰性予測値)。

plr: likelihood ratio of a positive test.
plr:陽性反応の尤度比。

nlr: likelihood ratio of a negative test.
nlr:陽性反応の尤度比

pro: the proportion of subjects with the outcome ruled out.
pro:結果が除外された被験者の割合。

pri: the proportion of subjects with the outcome ruled in.
pri: 結果が含有された被験者の割合。

pfp: of all the subjects that are truly outcome negative, the proportion that are incorrectly classified as positive (the proportion of false positives).
pfp:真にアウトカムネガティブである全被験者のうち,誤ってポジティブに分類された割合(偽陽性の割合)。

pfn: of all the subjects that are truly outcome positive, the proportion that are incorrectly classified as negative (the proportion of false negative).
pfn:真にアウトカム・ポジティブである全被験者のうち,誤ってネガティブと判定された割合(偽ネガティブの割合)。

心筋梗塞のリスクが高くないと判断された被験者の割合は?

rval2$elements$pro

Consoleに入れる。

Answer:0.61 (95% CI 0.54 to 0.68).

心筋梗塞のリスクが高いと判断された被験者の割合は?

rval2$elements$pri

Consoleに入れる。 Answer: 0.38 (95% CI 0.32 to 0.45).

偽陽性の割合はどのくらい?

rval2$elements$pfp

Answer: 0.37 (95% CI 0.29 to 0.45).

偽陰性の割合はどのくらい?

rval2$elements$pfn

Answer: 0.58 (95% CI 0.44 to 0.70).