統計ER

R, EZR, SPSS, KH Coder を使ったデータ分析方法を紹介するブログ。ニッチな内容が多め

ROC 曲線の比較に必要なサンプル数計算 偽陽性率 陽性率 AUC を用いる方法

ROC 曲線の比較に必要なサンプル数 サンプルサイズを計算する方法

>>もう統計で悩むのを終わりにしませんか?


↑1万人以上の医療従事者が購読中

ROC 曲線の比較に必要なサンプル数 サンプルサイズを計算するために必要な数値

ROC 曲線を比較したい検査値を、検査値 1、検査値 2 とする。

まず、先行研究から、以下の数値を読み取る。

  1. False positive rate(FPR)(1-specificity)偽陽性
  2. True positive rate(TPR)(Sensitivity)陽性率
  3. AUC(Area Under the Curve)
  4. 疾患あり・なし別の検査値別の標準偏差(可能であれば)
  5. 疾患あり・なし別の検査値 1 と 2 の相関係数(可能であれば)

標準偏差相関係数は見つけるのが難しい。

標準偏差は検査値 1 、2 ともに同じと想定して比を1とする。

相関係数はいくつか試してみる。

たとえば0.2、0.4、0.6、0.8、とか、0.1、0.3、0.7、とかである。

ROC 曲線の比較に必要なサンプル数 サンプルサイズ計算の例

まず R に pROCパッケージをインストールして使えるようにする。

インストールは最初の一回だけ。

install.packages("pROC")

library()で呼び出すのは毎回。

library(pROC)

サンプルサイズ計算に必要な数値として、以下の数値を想定する。

検査値 1 :

  • FPR=0.05
  • TPR=0.83
  • AUC=0.970

検査値 2 :

  • FPR=0.05
  • TPR=0.67
  • AUC=0.919

検査値 1 と 2 の標準偏差の比を 1 とする。

疾患あり・なしともに検査値 1 と 2 の相関係数を0.6と仮定する。

有意水準 5%、検出力 80%、疾患なしとありの比が 4 とする。

この時の R スクリプトは、以下の通り。

FPR.1 <- 0.05
TPR.1 <- 0.83
AUC.1 <- 0.970
FPR.2 <- 0.05
TPR.2 <- 0.67
AUC.2 <- 0.919
B.1 <- 1.0
B.2 <- 1.0
r.D <- 0.60
r.N <- 0.60

A.1 <- B.1 * qnorm(1.0-FPR.1) - qnorm(1.0-TPR.1)
A.2 <- B.2 * qnorm(1.0-FPR.2) - qnorm(1.0-TPR.2)
parameters <- list(A1=A.1, B1=B.1, A2=A.2, B2=B.2, rn=r.N, ra=r.D, delta=AUC.1-AUC.2)

# Significant level = 0.05
# Power = 0.80
# Normal to Disease = 4

power.roc.test(parameters, power=0.80, kappa=4)

計算結果はこちら。

> power.roc.test(parameters, power=0.80, kappa=4)

     Two ROC curves power calculation 

         ncases = 78.80902
      ncontrols = 315.2361
      sig.level = 0.05
          power = 0.8

必要なサンプルサイズは、疾患ありが79例、疾患なしが316例、合計395例と計算される。

>>もう統計で悩むのを終わりにしませんか?


↑1万人以上の医療従事者が購読中

まとめ

ROC 曲線の比較に必要なサンプルサイズ計算の方法を紹介した。

参考文献

Obuchowski NA et al. Stat Med 1997;16(13):1529-1542.