楼主: shaobl
17183 24

[程序分享] 用SAS也能给你的ROC曲线添加切值点以及敏感度、特异度 [推广有奖]

11
shaobl 发表于 2019-3-19 12:36:13 |只看作者 |坛友微信交流群
付齐齐88 发表于 2018-11-28 14:51
哈哈哈自己摸索出来了 附上程序 仅供参考
%include  "G:\rocplot.sas";
data fqq.girl;
棒~
自己摸索出来的记得更牢:)

使用道具

12
wps930720 在职认证  发表于 2019-5-23 16:11:12 |只看作者 |坛友微信交流群
Bugjay 发表于 2018-11-27 15:11
跑通了,感谢
请问下,X是用指标替换是什么意思?X是用入模所有变量吗?

使用道具

13
wps930720 在职认证  发表于 2019-5-24 09:00:34 |只看作者 |坛友微信交流群
                    id = x _sens_ _spec_,
                     optcrit=correct youden ,  x=x)

请问下,这两个x 是用代入什么呢

使用道具

14
alim727 发表于 2019-11-26 14:48:34 |只看作者 |坛友微信交流群
最佳截断值怎么求呢?

使用道具

15
顺毕拜托了 发表于 2019-12-2 10:44:24 |只看作者 |坛友微信交流群
shaobl 发表于 2019-3-19 12:31
你好,好久没上论坛了。

图上的三个数字分别代表的是:切点值、灵敏度和特异度,即语句中id选项的内容 ...
大神您好 请问我的x有好几个的时候 x=x那里我该怎么修改呢?

使用道具

您好 为什么我跑出来显示  ERROR 180-322: 语句无效或未按正确顺序使用。
ERROR: 所有位置参数均应位于关键字参数之前。

使用道具

看就看损伤 发表于 2020-1-9 01:24
您好 为什么我跑出来显示  ERROR 180-322: 语句无效或未按正确顺序使用。
ERROR: 所有位置参数均应位于关键 ...
%inc 'C:\Users\Administrator\Desktop\rocplot.sas';

proc logistic data=sasuser.dlwnan;
class age1(param=reference ref="1")   bmi1(param=reference ref="2");
model diabetes= age1 hk bmi1 dia1 /outroc=roc1 roceps=0;
output out=out p=phat;
run;
title "ROC plot for ";
%rocplot( inroc = roc1,inpred = out, p = phat,
                     id = x _sens_ _spec_,
  optcrit=correct youden ,  x=x)  就是和您一样的程序

使用道具

18
风之舞者 发表于 2020-2-20 18:39:26 |只看作者 |坛友微信交流群
用上述代码,可是日志显示没有解析宏rocplot的调用,是什么原因,还请各位大神赐教!

使用道具

19
风之舞者 发表于 2020-2-20 19:31:59 |只看作者 |坛友微信交流群
风之舞者 发表于 2020-2-20 18:39
用上述代码,可是日志显示没有解析宏rocplot的调用,是什么原因,还请各位大神赐教!
我自己已解决换了台电脑,这台电脑装的时候有问题。

使用道具

20
王江水 发表于 2021-5-8 19:23:59 |只看作者 |坛友微信交流群
你好,请问一下我的ROC曲线代码一直报错(代码和报错结果如下),这是为什么呀
代码
proc logistic data=wjtj.xz1 desc;*dataset为你的数据集名称;
model dislip=age/ outroc=roc1 roceps=0;*绘制ROC曲线所需的数据集为roc1;
output out=out p=phat;*每个观测值x的预测概率输出到out数据集,并重命名为phat;
run;
%inc "K:\ROC.sas";
title "ROC plot for dislip=age ";
title2 "" ;
%rocplot(inroc = roc1,inpred = out, p = phat,
       id = age _cutpt_ _optcorr_ _optdist_ _opty_ _optsesp_,
       optcrit = youden , optsymbolstyle = size=0,
            optbyx = panelall, x = Age)
/*inroc=绘制ROC曲线所需的数据集*/
/*inpred=观测值预测概率值数据集*/
/*p=预测概率值变量名*/
/*id=ROC曲线上切点显示的标签(此处显示x实际值、灵敏度、特异度、正确率、Youden指数)*/
/*optcrit=最佳切断点选择标准(此处为正确率、Youden指数)*/
/*x=切点选择对应的变量*/

报错如下

6346   %rocplot(inroc = roc1,inpred = out, p = phat,
6347   ? ?? ??id = age _cutpt_ _optcorr_ _optdist_ _opty_ _optsesp_,
ERROR: 所有位置参数均应位于关键字参数之前。
6348   ? ?? ??optcrit = youden , optsymbolstyle = size=0,
       -
       180
ERROR 180-322: 语句无效或未按正确顺序使用。
6349               optbyx = panelall, x = Age)

`2%($)VA]U}E8~92$G9RK71.png (22.82 KB)

代码

代码

QVJYRBQO7{)]C(49[UDU(~J.png (81.92 KB)

报错

报错

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 06:48