楼主: dbcoffee
13408 3

[问答] 如何计算ROC曲线的P值? [推广有奖]

  • 0关注
  • 0粉丝

硕士生

51%

还不是VIP/贵宾

-

威望
0
论坛币
181 个
通用积分
170.9881
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
1159 点
帖子
62
精华
0
在线时间
211 小时
注册时间
2015-6-16
最后登录
2022-7-10

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

通过pRoc包可以获取auc等值,但是并不给出p值(单个AUC,和AUC = 0.5相比)。通过verification包中的roc.area ()倒是可以计算出p值,但是计算出来的结果和SPSS不一致,到低应该如何计算roc的p值?

library(pROC)
library(verification)
data(aSAH)
head(aSAH)
r <- roc(aSAH$outcome, aSAH$s100b, plot=T)
levels(aSAH$outcome)<-c('0','1')
roc.area(as.numeric(as.vector(aSAH$outcome)), r$predictor)

$p.value
[1] 0.00002254601288
二维码

扫码加我 拉你入群

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

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

关键词:ROC曲线 ROC Verification Library cation

沙发
dbcoffee 发表于 2020-5-31 18:53:50 |只看作者 |坛友微信交流群

我搜了一些资料,也从stackoverflow上找到了一种获取p值的可行方法,分享如下:

se <- sqrt(var(r))  # 获取AUC的SE(标准误)
b <- r1$auc - .5
z <- (b / se)  # 计算Z值
2 * pt(-abs(z), df=Inf)  ## two-sided test

不知道是否正确,欢迎大家指正。

使用道具

藤椅
dbcoffee 发表于 2020-5-31 18:59:48 |只看作者 |坛友微信交流群
我搜了一些资料,也从stackoverflow上找到了一种获取p值的可行方法,分享如下:
```R
se <- sqrt(var(r))  # 获取AUC的SE(标准误)
b <- r1$auc - .5
z <- (b / se)  # 计算Z值
2 * pt(-abs(z), df=Inf)  ## two-sided test
```
结果和SPSS的基本差不多(略有差别)
SPSS的p值:0.000007
上述代码的p值:0.000007508474
不知道是否正确,欢迎大家指正。

论坛回复编辑后没反应

使用道具

板凳
DAWN1406 发表于 2022-4-12 18:03:56 |只看作者 |坛友微信交流群
可以使用网页版SPSSAU进行操作与分析。

使用道具

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

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

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

GMT+8, 2024-4-30 18:04