ROC 曲線の比較に必要なサンプル数 サンプルサイズを計算する方法
目次
ROC 曲線の比較に必要なサンプル数を計算するために必要な数値
ROC 曲線を比較したい検査値を、検査値 1、検査値 2 とする。
まず、先行研究から、以下の数値を読み取る。
- False positive rate(FPR)(1-specificity)偽陽性率
- True positive rate(TPR)(Sensitivity)陽性率
- AUC(Area Under the Curve)
- 疾患あり・なし別の検査値別の標準偏差(可能であれば)
- 疾患あり・なし別の検査値 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例と計算される。
まとめ
ROC 曲線の比較に必要なサンプルサイズ計算の方法を紹介した。
コメント
コメント一覧 (1件)
[…] R で ROC 曲線の比較に必要なサンプル数を計算する方法 偽陽性率 陽性率 AUC… ROC 曲線の比較に必要なサンプル数 サンプルサイズを計算する方法 ROC […]