2つのROC曲線の差を比較するときのサンプルサイズ計算

にほんブログ村 科学ブログ 数学へ

2つの指標に関するROC曲線を比較したい場合、 サンプルサイズ計算はどのようにすればいいか?

2つのROC曲線の差を比較するときのサンプルサイズ計算に必要な想定

2つの指標を、 指標1、指標2とする。

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

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

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

標準偏差は指標1と指標2は同じと想定して比を1とする。

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

たとえば0.2、0.4、0.6、0.8 たとえば0.1、0.3、0.7

2つのROC曲線を比較する時のサンプルサイズ計算実例

指標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

とすると このとき必要なサンプルサイズは、

疾患ありが79例 疾患なしが316例 合計395例と計算される。

2つのROC曲線を比較するときのサンプルサイズ計算のスクリプト

統計ソフトRで計算する。

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

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

install.packages("pROC")

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

library(pROC)

まず想定をインプット。

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

参考文献:

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