ROC曲線をプロットするためにpROCパッケージを使用する際に2つの問題があります。
A.有意水準または P 値は、ROC 曲線の下の真の (母集団) 面積が実際には 0.5 (帰無仮説: 面積 = 0.5) である場合に、観察されたサンプルの ROC 曲線の下の面積が見つかる確率です。P が小さい場合 (P<0.05)、ROC 曲線下の面積が 0.5 とは有意に異なると結論付けることができ、したがって、臨床検査が 2 つのグループを区別する能力を持っているという証拠があると結論付けることができます。
したがって、ROC 曲線の下の特定の領域が 0.50 と大幅に異なるかどうかを計算したいと思います。次のように pROC パッケージを使用して 2 つの ROC 曲線を比較するコードを見つけましたが、0.5 有意かどうかをテストする方法がわかりません。
library(pROC)
data(aSAH)
rocobj1 <- plot.roc(aSAH$outcome, aSAH$s100,
main="Statistical comparison",
percent=TRUE, col="#1c61b6")
rocobj2 <- lines.roc(aSAH$outcome, aSAH$ndka,
percent=TRUE, col="#008600")
testobj <- roc.test(rocobj1, rocobj2)
text(50, 50,
labels=paste("p-value =", format.pval(testobj$p.value)),
adj=c(0, .5))
legend("bottomright", legend=c("S100B", "NDKA"),
col=c("#1c61b6", "#008600"), lwd=2)
B.分類問題に対して k 分割交差検証を行いました。たとえば、5 分割交差検証では 5 つの ROC 曲線が生成されます。次に、pROC パッケージを使用してこれら 5 つの ROC 曲線の平均をプロットする方法 (私がやりたいことはこの Web ページで説明されていますが、Python で行われます:ここにリンクの説明を入力してください)? もう 1 つのことは、この平均 ROC 曲線の信頼区間と最適なしきい値 (以下に実装されたコードのようなもの) を取得できるかということです。
rocobj <- plot.roc(aSAH$outcome, aSAH$s100b,
main="Confidence intervals",
percent=TRUE, ci=TRUE, # compute AUC (of AUC by default)
print.auc=TRUE) # print the AUC (will contain the CI)
ciobj <- ci.se(rocobj, # CI of sensitivity
specificities=seq(0, 100, 5)) # over a select set of specificities
plot(ciobj, type="shape", col="#1c61b6AA") # plot as a blue shape
plot(ci(rocobj, of="thresholds", thresholds="best")) # add one threshold
参照:
http://web.expasy.org/pROC/screenshots.html
http://scikit-learn.org/0.13/auto_examples/plot_roc_crossval.html
http://www.talkstats.com/showthread.php/14487-ROC-significance