20

ROC をプロットし、生態学的ニッチ モデルの品質の指標として部分的な AUC を測定しています。私は R で作業しているので、ROCR と pROC パッケージを使用しています。使用するものに落ち着きますが、今のところ、それらがどのように機能するかを確認したかっただけで、私のニーズをよりよく満たしているかどうか.

私を混乱させることの 1 つは、ROC をプロットするとき、軸が次のようになることです。

ROCR

x axis: 'true positive rate' 0 -> 1
y axis: 'false positive rate', 0 -> 1

プロシージャ

x axis: 'sensitivity' 0 -> 1
y axis: 'specificity' 1 -> 0. 

しかし、両方の方法を使用して ROC をプロットすると、同じように見えます。だから私はそれを確認したいだけです:

true positive rate = sensitivity

false positive rate = 1 - specificity.

再現可能な例を次に示します。

obs<-rep(0:1, each=50)
pred<-c(runif(50,min=0,max=0.8),runif(50,min=0.3,max=0.6))
plot(roc(obs,pred))

ROCRpred<-prediction(pred,obs)
plot(performance(ROCRpred,'tpr','fpr'))
4

3 に答える 3

13

言うまでもなく、pROCプロット コードに以下を含める場合のパッケージの場合:

plot(roc(obs,pred), legacy.axes = TRUE)

次に、逆のx軸になります。

于 2016-04-13T12:11:37.300 に答える
13

確認するために、真陽性率 = 感度および偽陽性率 = 1 - 特異性という点で正しいです。あなたの例では、ROCRパッケージから ROCR パフォーマンス オブジェクトのコンポーネントをプロットする順序が重要です。最後の行では、最初のパフォーマンス メジャーである真陽性率 'tpr' が y 軸にプロットされmeasure = 'tpr'、2 番目のパフォーマンス メジャーである偽陽性率が x 軸にプロットされます。x.measure = 'fpr'

plot(performance(ROCRpred, measure = 'tpr', x.measure = 'fpr'))
于 2011-10-20T04:32:00.650 に答える
6

私の知る限りでは:

TPR = sensitivity = TP/(TP/FN) -> y axis: [0, 1]

FPR = 1 - specificity = 1 - (TN/(FP+TN)) -> x axis: [0, 1]

ただし、グラフが x 軸に特異度 (真陰性率) を示す場合、範囲は [1, 0] です。

どちらの場合も、グラフは同じです。

こちら のウィキペディアのページで確認できます。

于 2014-08-14T08:33:01.657 に答える