近来研究ROC,有一点心得,也有一个疑问。
ROC曲线理论
以真阳性率(灵敏度)为纵坐标,假阳性率(1—特异度)为横坐标绘制。
各种作图软件的比较、软件的下载安装、作图的具体步骤:
(1)Excel做的散点图:(由于我们经常使用Excel,所以开始时觉得这个方法较容易接受。但由于Excel毕竟不是做ROC曲线的专用工具,所以需要自己算出敏感度和特异度,而且无ROC曲线的分析。)
这个方法要算出相应的敏感度和1-特异度的值,然后选中数据区,做散点图,只是做参照线(也就是对角线)的时候,有点麻烦,因为Excel的线性拟合的截距不是0,改为0后,斜率不是45°,而且没有相应的点,所以我是用了小聪明,拷贝了两列特异度作为数据源,在原来的散点图中添加数据,画的参照线。

(2)Spss15.0作图结果:(只能进行ROC曲线下面积AUC的非参数估计,以及找出最佳工作点,使用该软件的感觉有点像matlab,有两个窗口,个人感觉该软件功能很强大,只是软件的下载很费事,要下载相应的算号器。在安装的过程中,使用算号器破解。)
1:建立数据表(File—>new—>data)输入数据,数据表的界面如图二,可以在data view(修改数据的数值) 和 variable view(修改数据的类型)之间切换。

2:Analyze—>ROC Curve—>Test Variable(选择你的测试值,可以有多个,本例为test1、test2、和test3的比较,故选择3个值),State Variable(选择测试结果值,本例为diagnosis) Value State(判断正确的取值,本例为1 ) Disply的选项全选。在Output窗口可以得到如图所示的曲线。


medcalc 作图的结果:(该软件的界面很友好,比spss好用,分析功能强大,有详细的ROC曲线的report,作出来的图也很漂亮,双击图像可以对图的显示效果做调整,只是每次使用该软件,第一次点击显示不能使用该软件,第二次要输入:MedCalc sn:User name : Jodi Hodnik Product key: 9SPP9-WA699-KY8MK-565PF才可以使用。
1:建立数据表:(和spss类似)
2:Statistics—>ROC Curve—>ROC Curve analysis(画一个结果的ROC曲线) 或者 Comparison of Curves(多个结果的比较)


疑问:
在蛋白质分类的预测结果中test 这一列的取值是什么??
为研究这个问题,我做了以下的ROC曲线:(ROC也算是了解了,希望可以用到我的论文中,蛋白质预测的最终能得到一列和test这一列同样性质的值吗???)
(1)test3和state取值相同时,做出来的蓝色的ROC曲线是一条最理想的ROC曲线,(AUC=1)


(2)在statue中输入20个值(14个1,6个0,该行表示实际的判定结果,即真假样本的个数),在test中输入一些值,<=20的:判定为0的有13个,判定为1的有2个。>20的:判定为1的有1个,判定为0的有4个,故sn=13/14=0.928, sp=2/6=0.33.3, 1-sp=0.667,和ROC report中值一致。

