全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
21361 21
2012-02-24

现有如下两列数:

x





y

0.940278

1

0.838616

0

0.84515

1

0.878174

1

0.88333

1

0.885006

1


想利用SAS 9.0画出ROC曲线,并求出AUC值,该怎么做啊!谢谢了!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-2-25 22:53:19
data a;
input x iswy;
cards;
0.940278 1
0.838616 0
0.84515 1
0.878174 1
0.88333 1
0.885006 1
;
run;
Proc sort data=a out=a;  
by descending x;
run;
data  a;
set  a;
i=1;
sn+i;
run;
data a;
set a;
wy+iswy;
if iswy=0 then isnotwy=1;
else isnotwy=0;
run;
data a ;set a;
notwy+isnotwy;
run;
proc sql;
create table roc as
select sn,wy/sum(iswy) as y,notwy/sum(isnotwy) as x
from a;
quit;
run;
proc sql;
create table auc as
select sum(y*delta) as auc  
from  (select a.*,b.x as x2,a.x- b.x as delta
       from roc a,roc b
       where a.sn=b.sn+1)
;
quit;
run;
/***ROC曲线**/
axis order=(0 to 1 by .1) label=none length=4in;
symbol i=join v=none c=depk;
symbol2 i=join v=none c=black;
title "roc curve";
axis1 label=(angle=90 "sensitivity");
axis2 label=("1-1mspec");
proc gplot data =roc gout=roc;
plot y*x x*x
/ overlay vaxis=axis1 haxis=axis2;
run;
quit;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-27 11:49:20
zhujp 发表于 2012-2-25 22:53
data a;
input x iswy;
cards;
非常感谢您的帮助!谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-28 02:52:16
帮顶~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-28 14:43:13
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-29 17:11:46
好好好
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群