EZR の ROC 曲線グラフのX軸を 1 – 特異度にする方法。
EZRでROC曲線を描く方法
EZRでROC曲線を描く方法はとても簡単だ。
「統計解析」→「検査の正確度の評価」→「定量検査の診断への正確度の評価(ROC曲線)」を選択する。
結果変数(2値)と予測に用いる変数(連続データ)を選択してOKをクリックするだけ。
ROC曲線が描かれる。
X軸を見るとSpecificityとなっていて、左側に1.0がある。これを 1-Specificity にして、左に0.0が来るようにしたい。
どうするか?
EZRで描いたROC曲線のX軸を 1 – 特異度 にするには?
X軸をいわゆる普通の方向にするには、Rスクリプトの一部を使って以下のようにする。
Rスクリプト内に以下の行を見つける。
plot(ROC, print.thres=co[,1], grid=TRUE)
カッコ内に legacy.axes=TRUE と書き入れる。
plot(ROC, print.thres=co[,1], grid=TRUE, legacy.axes=TRUE)
実行をクリックすると以下のように描かれる。
X軸の値がいつもどおりの向きになったのがわかる。
このようにするとROC曲線がいつもどおりの感じに描くことができる。
2 つの ROC 曲線の AUC 比較の場合 X 軸の変更
2 つの ROC 曲線の AUC の比較メニューで、2 本の ROC 曲線を書いたときの X 軸を従来のものに変更する方法
通常は、以下のように、X 軸は逆方向である
これを順方向にするためには、まず、R スクリプト窓で以下の箇所を探しだす
windows(width=7, height=7); par(lwd=1, las=1, family="sans", cex=1, mgp=c(3.0,1,0))
plot(ROC1, lty=1)
plot(ROC2, lty=2, add=TRUE)
legend("bottomright", c("s100b", "ndka"), lty=1:2, box.lty=0)
2 行目の plot(ROC1, lty=1) のカッコ内に legacy.axes=TRUE を書き入れる
windows(width=7, height=7); par(lwd=1, las=1, family="sans", cex=1, mgp=c(3.0,1,0))
plot(ROC1, lty=1, legacy.axes=TRUE)
plot(ROC2, lty=2, add=TRUE)
legend("bottomright", c("s100b", "ndka"), lty=1:2, box.lty=0)
そして、この 4 行を選択して実行すると、以下のように X 軸が順方向になる
まとめ
EZRでROC曲線を描いたときに、X軸の値の向きが逆になっていることに気づく。
これを修正するには、plot()のカッコ内に legacy.axes=TRUE
と書き入れて実行する。
そうするといつもどおりの向きの図になる。
2 つの ROC 曲線の AUR の比較の図でも、同様である。
お試しあれ。
コメント