1

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

http://www.medcalc.org/manual/roc-curves.php

4

1 に答える 1

2

A.wilcox.testまさにそれを行う a を使用します。

B. この質問に対する私の回答を参照してください:機能選択 + 交差検証ですが、R で ROC 曲線を作成し、交差検証の各フォールドでデータを単純に連結する方法 (ただし、ブートストラップ、LOO、交差検証全体を複数回繰り返す場合、または実行間で予測を比較できない場合)。

于 2014-01-13T10:58:46.443 に答える