roc曲线如何画

作者&投稿:潘敬 (若有异议请与网页底部的电邮联系)
如何利用SPSS绘制ROC曲线~

方法/步骤




1


首先,打开数据,以A2列数据为例做曲线。



2


点击“ Analyze -ROC curve ”。



3


弹出界面后,导入A2列数据,调节其它参数。



4


点击“OK”,出现结果。



5


双击ROC曲线,进入调节界面。



6


可以调节很多参数,也可以把曲线调成平滑的。很方便实用吧!

ROC曲线(Receiver Operating Characteristic Curve)是利用Classification模型真正率(True Positive Rate)和假正率(False Positive Rate)作为坐标轴,图形化表示分类方法的准确率的高低。

ROC图的一些概念定义::
真正(True Positive , TP)被模型预测为正的正样本
假负(False Negative , FN)被模型预测为负的正样本
假正(False Positive , FP)被模型预测为正的负样本
真负(True Negative , TN)被模型预测为负的负样本
真正率(TPR)
TPR = TP /(TP + FN)
正样本预测结果数 / 正样本实际数 。在ROC曲线中,TPR作为Y轴

假正率( FPR)
FPR = FP /(FP + TN)
被预测为正的负样本结果数 /负样本实际数 。在ROC曲线中,FPR作为X轴

关于ROC曲线的相关概念的解释,请参阅cowboy_wz的博客ROC曲线:http://blog.csdn.net/chl033/article/details/4507544


我在此主要做的事情是画出ROC曲线工程实现方面的一些解释。我们设计一个函数,此函数需要有一个模型预测值predict和数据标签值ground_truth作为输入参数。分为几步进行实现。


(1)统计数据标签值ground_truth(及y)中分类为0和分类为1的数据数目:

pos_num=sum(ground_truth==1);neg_num=sum(ground_truth);


(2)对利用模型求出的预测值predict由低到高进行排序;对应数据原来所在位置进行索引记录,用于重新排序ground_truth.利用函数sort实现,sort详情请查看help文档:

[pre,Index]=sort(predict); ground_truth=ground_truth(Index);


(3)对ground_truth和predict遍历i=1:n,n是测试集数目。其目的是随着predict中概率的增加,随着增加判断正负样本的阈值;也就是说取遍历到的predict值为阈值,大于阈值的假设预测为正样本(阈值右边),小于阈值的假设预测为负样本(阈值左边)。

所以同时我们可得到真正TP 和假正FP值:TP=sum(ground_truth(i:n)==1);FP=sum(ground_truth(i:n)==0);

这时我们就可以求取TPR 和FPR了:TPR=TP/pos_num; FPR=FP/neg_num; 把求取到的值保存起来(x(i),y(i)),因为这就是我们要在图上画的点。


(4)返回曲线与坐标轴间的面积auc。我们的目的是测量数据的准确率,这个面积就是一个量度,auc越大,准确率越高。

auc=auc+(y(i)+y(i-1))*(x(i-1)-x(i))/2;


实现ROC曲线的代码如下:

% predict - 分类器对测试集的分类结果
% ground_truth - 测试集的正确标签,这里只考虑二分类,即0和1
% auc - 返回ROC曲线的曲线下的面积
function auc = plot_roc( predict, ground_truth )
%初始点为(1.0, 1.0)
%计算出ground_truth中正样本的数目pos_num和负样本的数目neg_num

pos_num = sum(ground_truth==1);
neg_num = sum(ground_truth==0);

m=size(ground_truth,1);
[pre,Index]=sort(predict);
ground_truth=ground_truth(Index);
x=zeros(m+1,1);
y=zeros(m+1,1);
auc=0;
x(1)=1;y(1)=1;


for i=2:m
TP=sum(ground_truth(i:m)==1);FP=sum(ground_truth(i:m)==0);
x(i)=FP/neg_num;
y(i)=TP/pos_num;
auc=auc+(y(i)+y(i-1))*(x(i-1)-x(i))/2;
end;


x(m+1)=0;y(m+1)=0;
auc=auc+y(m)*x(m)/2;
plot(x,y);
end

根据五种先定概率得到的实验结果,就可计算击中概率和虚惊概率。最后,根据不同先定概率下的击中概率和虚惊概率,就可在图上确定各点的位置,把五点联接起来就绘成一条 ROC曲线。

如下图:

扩展资料:

ROC曲线的特性

(1)β值的改变独立于d’的变化,考察β值变化对P(y/SN)和P(y/N)的影响时发现:当β接近0时,击中概率几乎为0,即信号全当成噪音接受;当β接近无穷大时,虚惊概率几乎为0,即噪音全当成信号接受;

而当β从接近0向无穷大渐变的过程中,将形成一条完整地ROC曲线,曲线在某一处达到最佳的标准βOPT。

(2)ROC曲线的曲率反应敏感性指标d’:对角线,代表P(y/SN)=P(y/N),即被试者的辨别力d’为0,ROC曲线离这条线愈远,表示被试者辨别力愈强,d’的值当然就愈大。

由上可知,d’的变化使ROC曲线形成一个曲线簇,而β的变化体现·在这一曲线簇中的某一条曲线上不同点的变化。此外,如果将ROC曲线的坐标轴变为Z分数坐标,将看到ROC曲线从曲线形态变为直线形态。这种坐标变换可以用来验证信号检测论一个重要假设,即方差齐性假设。

参考资料来源:百度百科-ROC曲线



  roc曲线的制作步骤:
  用SPSS制作ROC曲线。
  1、首先录入数据:
  在这里,序号1代表击中,0代表虚报,后面“频数”列对应的分别是先定概率在0.2/0.5/0.8情况下击中和虚报的频数;
  2、其次对频数加权打开“分析”,最下方会出现“ROC曲线”,打开将“频数”拖入检验变量一栏,“序号”拖入状态变量一栏;
  3、状态变量的值设置为“1”;
  4、点选“ROC曲线”“对角参考线”“ROC曲线的坐标点”三个选项,确定;

  5、随后会出现这个原始的ROC曲线。

在体外诊断试剂确定临界值时,要用到ROC曲线(受试者工作特征曲线),并计算AUC(ROC曲线下面积),用Excel做了个计算模板,录入数据及对照临界值即可自动画出ROC曲线并计算出ROC曲线下面积和临界值等参数,可能对你有帮助,可参考下。你用百度搜索百度文库的这篇excel文档:用Excel绘制ROC曲线(受试者工作特征曲线)计算临界值参考值、AUC-ROC曲线下面积

你讲的是信号检测论里的吧?ROC曲线纵轴是击中率,横轴是虚报率,对角线表示随机概率。对角线以上链接对角向上弯曲的曲线就是ROC曲线。曲率越大越向上表示被试感受性越强。


OC是什么意思?
OC即Over-The-Counter Market 。OC后缀代表股票的上市\/挂牌地点是在场外市场股票交易所。red herring在美国是指新发行证券的初步募股说明书,主要用于掌握市场对该种证券的兴趣,说明书的内容并不包括发行价格、利润和股息预测等关键数字。在美国,法律要求在说明书的正面必须印上红色的通知,“红鲱鱼”(...

怎么在电脑上画动漫人物?
可以用电脑系统自带的画图软件画。具体做法如下:1、打开电脑系统自带的画图软件,然后选择曲线,选择比较细的线条。2、选择好曲线和线条后,用曲线画出人物的脸部轮廓。2、画好脸部轮廓后,再使用曲线,画出头发。3、画好头发后,把线条调粗一点,画出人物的眉毛。4、选择椭圆形,线条调细,画出人物...

求详解一道高数题。最好能画个曲线图。
解:(1)如图,过B点作BC⊥x轴,垂足为C,则∠BCO=90°。∵∠AOB=120°,∴∠BOC=60°。又∵OA=OB=4,∴OC= OB= ×4=2,BC=OB?sin60°= 。∴点B的坐标为(﹣2,﹣ )。(2)∵抛物线过原点O和点A.B,∴可设抛物线解析式为y=ax2+bx,将A(4,0),B(﹣2,﹣ )代入,得 ,解...

画椭圆形的简单方法
画椭圆只需使用一根绳子(无弹性)、一支笔以及两个图钉,具体操作如下:如图所示,如细钢丝绳,两端固定在钉子上,用划线笔撑直绳子,笔与绳之间是滑动的,这样转圈画出的就是一个椭圆。确定两个固定钉子的距离和绳的长度,就可以画出任意长轴或任意短轴的椭圆(“任意”只是相对而言,因为现实画法会...

OC曲线可以用来( )。
【答案】:B OC曲线是抽样方案的特性,可以用来分析比较抽样方案的判别能力和抽检特性。

电脑手绘插画都是怎么画的-如何学习电脑手绘和电脑插画?
手绘插画怎么画? 一_寤茉谥缴匣痪托辛寺?为什么还要学习软件?费劲不? 插画在纸上画,那是一个传统的插画绘画方法,用到纸张颜料等,这个就是我们通常说的手绘插画,而学软件画插画,指的是数位板插画,或者叫板绘插画,就是在电脑上进行一个插画的绘制,而这种形式有没有必须学习呢?当然有必要的,现在网上接单约稿,...

我要西方经济学微观部分的答案
(1)当i=250(美元)—5r时,找出r等于10%、8%、6%时的投资量,画出投资需求曲线; |鄕�踃瓮2 (2)若投资函数为i=250(美元)—10r,找出r等于10%、8%、6%时的投资量,画出投资需求曲线; u堷??05= (3)说明e的增加对投资需求曲线的影响; �t?秖> (4)若i=200—5r,投资需求曲线将怎样变化? 贳诲 ...

椭圆怎么画???
画椭圆的方法如下:1、画出对称轴:两条互相垂直平分的线段。2、把四个端点平滑的连接起来即可。CAD绘制椭圆的方法:工具\/原料 Auto CAD2004以上 1、首先打开软件,进入“Auto CAD经典”绘制界面,准备做图。2、开始绘制椭圆,方法有二,第一种,直接点击左侧工具栏“椭圆”按钮就可以进入椭圆绘制状态。

AQL抽样方法
3、 经验法:由负责部门人员、工程技术人员、质量管理人员根据工序能力等经验商定AQL。4、实验法:实验法是在没有任何鲜艳信息可借鉴的情况下,临时指定一个AQL值,根据使用过程中获得的有关质量信息,再AQL进行调整。5、反推法:反推法不去直接指定AQL值,而找一个正常检查抽样方案,使它的OC曲线通过某...

特殊检验水平的AQL怎样选择
特殊检验水平的AQL选择依据:1、检验对产品是破坏性的,则使用AQL抽样检验法。2、测量对象是流程性材料,则使用AQL抽样检验法。3、希望节省单位检验费用和时间,则使用AQL抽样检验法。确定AQL的方法:1、工程法:工程方法是根据产品的性能、寿命、互换性、装配、安全性和其他质量要求,把技术上必须保证的...

舒兰市17379852462: ROC曲线的绘制 -
晏砍盐酸: ROC曲线的具体绘制实例:杨治良(1983)曾做过这样一个实验:选图画页500页,分成五个组,每组100张.五组画页的先定概率分别是0.1、0.3、0.5、0.7和0.9.对于每一组画页,主试者使用一种信号的先定概率,然后按此先定概率呈现给...

舒兰市17379852462: roc曲线如何画 -
晏砍盐酸:[答案] 你讲的是信号检测论里的吧?ROC曲线纵轴是击中率,横轴是虚报率,对角线表示随机概率.对角线以上链接对角向上弯曲的曲线就是ROC曲线.曲率越大越向上表示被试感受性越强.

舒兰市17379852462: 如何利用SPSS绘制ROC曲线 -
晏砍盐酸: 方法/步骤1首先,打开数据,以A2列数据为例做曲线.2点击“ Analyze -ROC curve ”.3弹出界面后,导入A2列数据,调节其它参数.4点击“OK”,出现结果.5双击ROC曲线,进入调节界面.6可以调节很多参数,也可以把曲线调成平滑的.很方便实用吧!

舒兰市17379852462: 如何用spss制作ROC曲线 -
晏砍盐酸: 分析--ROC曲线分析,正确设置变量就行了.具体地说: 把检测变量(如test1)调入检验变量框,把状态变量(如diag)调入状态变量框,在状态变量的值框输入1,表示病人.确定. 效果图: 使用方法:绿线为参考对角线,蓝色线为ROC曲线,该曲线离对角线越远,表明诊断效果越好. 若有帮助,请及时采纳,谢谢. 统计人刘得意

舒兰市17379852462: spss中如何绘制ROC曲线?对数据类型有什么要求?有那些应用? -
晏砍盐酸: ROC(Receiver Operating Characteristic)曲线,用于二分类判别效果的分析与评价.一般自变量为连续变量,因变量为二分类变量. 基本原理是:通过判断点(cutoff point/cutoff value)的移动,获得多对灵敏度(sensitivity)和误判率(1-Specificity...

舒兰市17379852462: matlab roc曲线怎么画 -
晏砍盐酸: 直接用plot函数就可以 你可以把你的数据贴上来 plot(x,y1,x,y2,x,y3,xy4,x,y5) 然后再加上legend就可以了

舒兰市17379852462: 如何使用软件绘制ROC曲线 -
晏砍盐酸: 接收器运行特性(ROC)曲线被用在医学中去为一个临床测验确定一个截止值(它的原点,和它的名称的原点,来自于雷达信号检测). 一个ROC 曲线分析的目标是去确定截止值.ROC曲线是一个灵敏度(y-轴)对1–特异性(x-轴)曲线图.最大...

舒兰市17379852462: 如何利用SPSS做出ROC曲线 -
晏砍盐酸: ROC曲线 1.点击“分析 -ROC curve ”. 2.第一个对话框拉入要分析的指标,比如年龄 3.第二个对话框拉入分组指标,比如是否发病,状态输入1代表发病 4.下面4个对话框全选 5.确定

舒兰市17379852462: spss19.0中如何做roc曲线 -
晏砍盐酸:[答案] SPSS软件实现ROC分析SPSS 9.0以上版本可进行ROC分析,操作步骤如下:1.定义列变量,并输入数据(1)诊断分类值或检测结果(test):多个诊断试验则定义test1,test2,...(2)金标准类别(group):1=病例组,0=对照组...

舒兰市17379852462: 请问spss中如何做roc曲线,最好有详细步骤,谢谢 -
晏砍盐酸: analyze下面有选项roc的,分别选入变量即可

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网