楼主: lyceum
13815 10

[原创博文] 连续变量预测 ROC曲线的最佳cutoff如何自动计算 [推广有奖]

  • 0关注
  • 3粉丝

已卖:251份资源

硕士生

31%

还不是VIP/贵宾

-

威望
0
论坛币
232 个
通用积分
2.1052
学术水平
13 点
热心指数
24 点
信用等级
5 点
经验
3180 点
帖子
121
精华
0
在线时间
129 小时
注册时间
2007-3-29
最后登录
2023-12-26

楼主
lyceum 发表于 2011-1-19 13:09:34 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
以前本版也有人问过类似问题,但似乎没有什么合适的答案,请有经验的详细指教,数据如下。谢谢!
data Age_data;
input disease age bw@@;
datalines;
0 50 65  0 39 61  0 21 70  0 61 67
0 30 55  0 35 63  0 25 72  0 41 66
0 43 52  0 36 54  0 37 76  0 25 61
0 41 53  0 62 55  0 28 70  0 33 68
1 52 45  1 49 61  1 47 42  1 62 31
1 55 67  1 70 61  1 75 55  1 77 52
1 81 58  1 64 53  1 62 41  1 39 57
1 61 51  1 61 55  1 57 49  1 79 47
;
run;


問題:计算以年齡作為判斷是否罹患此疾病的 ROC 曲线的cut-off值
二维码

扫码加我 拉你入群

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

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

关键词:cutoff ROC曲线 连续变量 ROC cut 如何

回帖推荐

myzhang1982 发表于2楼  查看完整内容

data Age_data; input disease age bw@@; datalines; 0 50 65 0 39 61 0 21 70 0 61 67 0 30 55 0 35 63 0 25 72 0 41 66 0 43 52 0 36 54 0 37 76 0 25 61 0 41 53 0 62 55 0 28 70 0 33 68 1 52 45 1 49 61 1 47 42 1 62 31 1 55 67 1 70 61 1 75 55 1 77 52 1 81 58 1 64 53 1 62 41 1 39 57 1 61 51 1 61 55 1 57 49 1 79 47 ; run; proc logistic data=Age_data; MODEL disease (ev ...

本帖被以下文库推荐

沙发
myzhang1982 在职认证  发表于 2011-1-19 14:47:09
data Age_data;
input disease age bw@@;
datalines;
0 50 65  0 39 61  0 21 70  0 61 67
0 30 55  0 35 63  0 25 72  0 41 66
0 43 52  0 36 54  0 37 76  0 25 61
0 41 53  0 62 55  0 28 70  0 33 68
1 52 45  1 49 61  1 47 42  1 62 31
1 55 67  1 70 61  1 75 55  1 77 52
1 81 58  1 64 53  1 62 41  1 39 57
1 61 51  1 61 55  1 57 49  1 79 47
;
run;

proc logistic data=Age_data;
MODEL disease (event='1') = age / OUTROC = rdwi00;
RUN;

PROC GPLOT DATA= rdwi00;
PLOT _SENSIT_*_1MSPEC_ ;
symbol interpol=join;
run;

data leng;
set rdwi00;
x=sqrt((1-_sensit_)**2+_1mspec_**2);
run;
proc sort data=leng; by x _pos_ _neg_; run;

data n;
set leng;
if _n_=1 then do; call symput ('pos',_falneg_); call symput ('neg',_neg_);
                                  call symput ('ses',_sensit_); call symput ('spe',_1mspec_); end;
run;

proc sort data=age_data; by age descending disease ; run;
data age;
set age_data;
retain neg pos;
if disease=0 then neg+1;
if disease=1 then pos+1;
if neg=&neg and pos=&pos+1;
cutoff=age;
sensit=&ses;
_1mspec=&spe;
keep cutoff sensit _1mspec;
run;
proc print; run;

本例中大于等于47为cut off值
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

藤椅
lyceum 发表于 2011-1-20 07:17:53
十分感谢, 学习先。

板凳
343809974 发表于 2013-11-3 11:33:34
myzhang1982 发表于 2011-1-19 14:47
data Age_data;
input disease age bw@@;
datalines;
请问这段程序是根据什么选取的最大值?
数据集leng中的X指什么?

报纸
txyw 在职认证  发表于 2014-7-21 13:08:11
这个程序其实有问题,当样本含量较大时便不能出结果

地板
metrischen 发表于 2014-11-3 22:48:34
txyw 发表于 2014-7-21 13:08
这个程序其实有问题,当样本含量较大时便不能出结果
有没有更好的程序注解,或者稍微简单点的程序。求赐教!

7
matlab-007 发表于 2015-11-30 08:55:31
约登指数=敏感性-(1-特异性),不用计算,直接目测两个数据即可

8
Michael1941 发表于 2016-1-27 15:12:46
txyw 发表于 2014-7-21 13:08
这个程序其实有问题,当样本含量较大时便不能出结果
为什么不能出结果呢

9
pingguzh 发表于 2016-5-13 15:18:07
目测不能得到cut off值  

10
pingguzh 发表于 2016-5-13 15:18:35
这段程序是根据什么选取的最大值?
数据集leng中的X指什么?
这个地方我也有同问

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 14:47