ROC曲線とは?

前回の感度と特異度の話を発展させていきます。
使う表は引き続き10人の癌マーカーの数値を使います。
tmduto.hatenablog.com

罹患or非罹患 マーカーA濃度
罹患者 0.19
罹患者 0.17
非罹患者 0.17
罹患者 0.13
非罹患者 0.12
罹患者 0.09
非罹患者 0.07
非罹患者 0.06
非罹患者 0.04
非罹患者 0.01

 

 

    診断   合計
    陽性 陰性  
有(罹患) 3(人) 1(人) 4(人)
  無(非罹患) 2(人) 4(人) 6(人)
合計   5(人) 5(人) 10(人)

 

 

前回、腫瘍マーカーの濃度は個人差が有るので誤診が生じると言いました。
また、診断は基準値より上か下かで陽性か陰性か判断しますよね。
ではその基準値(カットオフ値)を変えれば患者の診断も変わると推測できます。
基準値(カットオフ値)を上げれば陽性は増え、陰性は減りそうだし、 
基準値(カットオフ値)を下げれば陽性は減り、陰性は減りそうです。

具体的に基準値(カットオフ値)を上げ下げしてみましょう。


カットオフ値を変化させると…?

基準値(カットオフ値)を0.08にしてみます。

 

罹患or非罹患 マーカーA濃度
罹患 0.19
罹患 0.17
非罹患 0.17
罹患 0.13
非罹患 0.12
罹患 0.09
非罹患 0.07
非罹患 0.06
非罹患 0.04
非罹患 0.01

 

  わかりづらいので2×2の表にすると

 

    診断   合計
    陽性 陰性  
有(罹患) 4(人) 0(人) 4(人)
  無(非罹患) 2(人) 4(人) 6(人)
合計   6(人) 4(人) 10(人)

 

 感度が1になりましたね!

特異度は4/6=0.6666で変化していません。よって特異度を変えずに感度が高くなったので、この検査は精度が高くなったといえるでしょう。

 

では逆に基準値(カットオフ値)を0.13にあげてみましょう。

 再び2×2の表にすると

 

    診断   合計
    陽性 陰性  
有(罹患) 3(人) 1(人) 4(人)
  無(非罹患) 1(人) 5(人) 6(人)
合計   4(人) 6(人) 10(人)

 

 こちらも特異度が5/6=.83333で改善しました!

感度は3/4=0.75で変化してないので、こちらも検査の精度が改善したといってよいでしょう。

 

とはいえ、極端にとっても良くないだろうと察しますよね。

たとえばカットオフ値を0.2にすると全員陰性になります。確かに非罹患者は全員陰性になるので特異度は1になりますが、癌罹患者も全員陰性になるの感度は0です。

 

このように基準値(カットオフ値)の選び方が重要となっていく訳です。

 

 

ROC曲線とは?

 では基準値(カットオフ値)をどこに設定すればいいのでしょうか?

 

 そもそも上のように感度と特異度は表裏一対です。感度・特異度を両方高める事はできません。つまり、感度と特異度の両方が適度な値をとれる場所を知りたいです。では、基準値(カットオフ値)を変数として感度と特異度の値の動きが可視化できればいいなあと考えます。それがROC曲線です。

 

 ROC曲線では横軸に偽陽性率(1ー特異度)、縦軸に陽性率(感度)をとります。そして、基準値(カットオフ値)を変えて生じる幾分かの感度と特異度のセットの点をプロットして、最近傍の点同士を結んだ線がROC曲線です。

 

 ROC曲線を描くのは面倒なのでRを使いましょう。

 

 

ROC

 

莫大なerrorwarningがでてきましたがグラフは得られたので良しとしましょう。

f:id:nashuto:20190307102336j:plain

  こんな仕上がりです。

 カットオフ値が 0.1 , 0.08 , 0.1 の時の感度と特異度はそれぞれ

 

(1-特異度,感度)=(0.3333 , 0.75) , (0.3333 , 1 ) , (0.16666 , 0.75)

 

でした。御覧のように、これらはROC曲線の点(角)になっていますよね。

 

このように、カットオフ値を変化させた場合の(1-特異度,感度)の各点を繋いだ線がROC曲線です。

 

 

ROC曲線の目的は、一目で感度と特異度の変移がみてとれることです。

感度と特異度が互いにいい点、つまり左上に近い点を取る時のカットオフ値ほど採用すべき値だと考えられるでしょう。