統計ER

R, EZR, SPSS, KH Coder を使ったデータ分析方法を紹介するブログ。ニッチな内容が多め

EZR の ROC曲線グラフ X軸を 1 - 特異度 にする方法

EZR の ROC 曲線グラフのX軸を 1 - 特異度にする方法。

>>もう統計で悩むのを終わりにしませんか?


↑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曲線がいつもどおりの感じに描くことができる。

>>もう統計で悩むのを終わりにしませんか?


↑1万人以上の医療従事者が購読中

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 の比較の図でも、同様である。

お試しあれ。

EZR公式マニュアル