理学療法士がまとめたノート

統計学備忘録 since2016

Rを使って統計学を勉強するブログです

感度、特異度、ROC曲線

感度と特異度

投稿日2017.7.31

f:id:yoshida931:20170731180203p:plain


感 度(陽性反応的中度)= b / ( a + b ) 疾患に罹患していて、検査も陽性  
特異度(陰性反応的中度)= c / ( c + d ) 疾患に罹患してなくて、検査も陰性 

 

偽陽性 a / ( a + b ) 疾患に罹患していて検査が陰性
偽陰性  d / ( c + d ) 疾患に罹患していないのに検査が陽性

感度=1-偽陽性
特異度=1-偽陰性

 

Rを使用してROC曲線を描いてみます
install.packages("ROCR")
library(ROCR)
サンプルデータ
f:id:yoshida931:20170731180401p:plain
    出典)柳川 堯 , 荒木 由布子; バイオ統計の基礎―医薬統計入門,近代科学社 ,2010,p12

準備…以下のようにデータを修正します
xは検査点数の個数をベクトルにしたものです
x<-c ( rep( 0,10 ) , rep( 1,2 ) , rep( 2,17 ) , rep( 3,19 ) , rep( 4,12 ) )
yは罹患を1、非罹患を0としてベクトルにしたものです
y<-c ( 1 , rep(0,9) , 0 , 0 , rep(1,6) , rep(0,11) , rep(1,11) , rep(0,8) , rep(1,12) )

 

あとはRの関数を使用します

install.packages("ROCR")
library(ROCR)
pd<- prediction(x,y)
roc <- performance (pd, "tpr", "fpr")
    tpr : True positive rate(感度)、fpr : False positive rate(偽陰性率)
plot( roc )

f:id:yoshida931:20170731181614p:plain

aucの算出 (area under the curve) 

auc.tmp <- performance ( pre , "auc" )
auc <- as.numeric ( auc.tmp@y.values  )

 auc = 0.8327778

 

参考ブログ  k-lab
http://www.nemotos.net/?p=836

参考・・・というか、ほとんどそのまま使用しております.
ありがとうございました.