Receiver Operating Characteristic curve

mog_la2007-09-09

ROC曲線、受動者動作特性曲線、または等感受性曲線


よく理解してないけども、検定等の感受性を示すものらしく、比較なんかに利用されるらしい。。


横軸が、偽陽性率(False Positive Fraction/間違って陽性とする確率)、1−特異度(Specificity)
縦軸が、真陽性率(True Positive Fraction/正しく陽性とする確率)


つまり、曲線が左上の方にいった方がよいテストってことになる。点線>実線。


検定による陽性、陰性という判断の平均値と標準偏差から、両正規分布を作り、
任意の判断基準を設け、両正規分布を分割する。で、切り取られた面積から、TPFとFPFが求まる。


参考、
ROC解析の概要
http://misg.umin.ac.jp/netconf/netconf_3/netconf_3_roc1.html



IGOR Pro で、平均と標準偏差
ga0 -> 2.34483, 1.13248
ga1 -> 4.46296, 1.17703
正規分布を使って、ROCを描いてみた。
(それっぽい画が出来たので、おそらくあってるはず;^)

make/o/n=200 ga0=gauss((x-20)/10,2.34483,1.13248)
make/o/n=200 ga1=gauss((x-20)/10,4.46296,1.17703)
SetScale/I x -2,18,"", ga0,ga1
display ga0,ga1
ModifyGraph rgb(ga1)=(0,0,2^16-1)
make/o/n=7 FPF,TPF
cursor a, ga0, 6
cursor b, ga1, 6
FPF[0]=area(ga0,hcsr(a),inf)
TPF[0]=area(ga1,hcsr(b),inf)
cursor a, ga0, 5
cursor b, ga1, 5
FPF[1]=area(ga0,hcsr(a),inf)
TPF[1]=area(ga1,hcsr(b),inf)
cursor a, ga0, 4
cursor b, ga1, 4
FPF[2]=area(ga0,hcsr(a),inf)
TPF[2]=area(ga1,hcsr(b),inf)
cursor a, ga0, 3
cursor b, ga1, 3
FPF[3]=area(ga0,hcsr(a),inf)
TPF[3]=area(ga1,hcsr(b),inf)
cursor a, ga0, 2
cursor b, ga1, 2
FPF[4]=area(ga0,hcsr(a),inf)
TPF[4]=area(ga1,hcsr(b),inf)
cursor a, ga0, 1
cursor b, ga1, 1
FPF[5]=area(ga0,hcsr(a),inf)
TPF[5]=area(ga1,hcsr(b),inf)
cursor a, ga0, 0
cursor b, ga1, 0
make/o/n=7 FPF,TPF
FPF[6]=area(ga0,hcsr(a),inf)
TPF[6]=area(ga1,hcsr(b),inf)
display TPF vs FPF


ROCのチャートを見た事あるので、多分組み込みの関数が用意されてるはず。 << IGOR Pro。