1

我正在尝试获取 sens、spec、npv 和 ppv,以了解两种患者评分系统的能力及其预测入院的能力。解释数据:

'Etriage' 是电子分流系统(分数从 1-5 分),AETriage 是一个面对面的分流系统(socres 1-5)。录取有 2 个级别作为因素 0 - 未录取,1 - 录取。

例如:

df <- data.frame(
    Etriage=c(2,3,3,5,2,5,3,3,4,3),
    AETriage=c(3,4,4,3,2,4,4,3,4,1), 
    Admitted=c(1,0,0,0,0,0,0,0,0,1))

我想比较两个分数预测录取的能力,并且一直在尝试使用 pROC 来做到这一点(取自整个数据集):

library(pROC)
auc(df$Admitted, df$AETriage)

ci.auc(df$Admitted, df$AETriage)
ROC_AETriage_Admitted<-roc(df$Admitted,df$AETriage)
print(ROC_AETriage_Admitted)

OperatingValuesAETriage <- coords(ROC_AETriage_Admitted, "all", 
    ret=c("sensitivity","specificity","npv","ppv","threshold"), transpose = FALSE)

print(OperatingValuesAETriage)

我将如何编码 2 个操作级别(低敏锐度 = 分数 3-5 和高敏锐度 = 1-2)并评估他们预测入院的能力?

谢谢!

4

1 回答 1

0

您不能使用文本分数(或因子),因为为了构建 ROC 曲线,我们需要对数据进行排序,这不能在简单文本上自动完成(“高”是否高于“低”?计算机不会我知道)。

但是,R 有一个文本数据类型:ordered factors,pROC(在某种程度上)支持它:

df$Etriage_binary <- ordered(
    ifelse(df$Etriage <= 2, "High", "Low"),
    levels = c("Low", "High"))

pROC::auc(df$Admitted, df$Etriage_binary)

尽管没有准确报告阈值,但它确实有效,但是这种二分法是有损的,并且您实际上不想这样做的原因有很多

于 2021-12-08T14:36:09.467 回答