ROC 和 multiROC 分析:如何计算最佳切点?

机器算法验证 r 敏感性分析 敏感性-特异性
2022-03-02 18:19:28

我试图了解如何计算 ROC 曲线的最佳切点(灵敏度和特异性最大化的值)。我正在使用aSAH包中的数据集pROC

outcome变量可以用两个自变量来解释:s100bndka使用Epi包的语法,我创建了两个模型:

library(pROC)
library(Epi)
ROC(form=outcome~s100b, data=aSAH)
ROC(form=outcome~ndka, data=aSAH)

输出如下图所示:

在此处输入图像描述 在此处输入图像描述

在第一张图 ( s100b) 中,该函数表示最佳切割点位于对应于 的值处lr.eta=0.304在第二张图 ( ndka) 中,最佳切点位于对应的值lr.eta=0.335( 的含义是什么lr.eta)。我的第一个问题是:

  • 所指示的值对应的s100bndka值是多少(关于lr.eta的最佳切点是什么)?s100bndka

第二个问题:

现在假设我创建了一个考虑到这两个变量的模型:

ROC(form=outcome~ndka+s100b, data=aSAH)

得到的图是:

在此处输入图像描述

我想知道ndkaAND的值是什么,在该值下s100b,函数可以最大限度地提高敏感性和特异性。换句话说: Se=68.3%ndkas100bSp=76.4%(来自图表的值)的值是多少?

我想这第二个问题与 multiROC 分析有关,但Epi包的文档没有解释如何计算模型中使用的两个变量的最佳切点。

我的问题似乎与reasearchGate的这个问题非常相似,简而言之:

代表测量灵敏度和特异性之间更好权衡的截止分数的确定是直截了当的。然而,对于多变量 ROC 曲线分析,我注意到大多数研究人员都专注于算法来确定几个指标(变量)的线性组合在 AUC 方面的整体准确性。[...]

然而,这些方法没有提到如何确定与提供最佳诊断准确性的多个指标相关的截止分数的组合。

一个可能的解决方案是 Shultz 在他的论文中提出的,但是从这篇文章中我无法理解如何计算多元 ROC 曲线的最佳切点。

也许软件包中的解决方案Epi并不理想,因此将不胜感激任何其他有用的链接。

4个回答

为了详细说明 Frank Harrell 的答案,该Epi软件包所做的是拟合逻辑回归,并制作具有以下形式的结果预测的 ROC 曲线:

outcome=11+e(β0+β1s100b+β2ndka)

在您的情况下,拟合值为 (intercept) = -2.379, (s100b) = 5.334 和 (ndka) = 0.031。由于您希望预测结果为 0.312(“最佳”截止值),因此您可以将其替换为(希望我没有在这里引入错误):β0β1β2

0.312=11+e(2.379+5.334s100b+0.031ndka)
1.588214=5.334s100b+0.031ndka
或:
s100b=1.5882140.031ndka5.334

任何满足该等式的 (s100b, ndka) 值对都是“最优的”。祝你好运,这些对有无数个。例如,(0.29, 1)、(0, 51.2) 等。更糟糕的是,它们中的大多数都没有任何意义。这对 (-580, 10000) 是什么意思?没有!

换句话说,你不能在输入上建立截止值——你必须在输出上做,这就是模型的重点。

在输入变量上寻求截断值是不合适的,而只是在输出上(例如,来自多变量模型的预测风险)。这是因为 x1 的截止值将取决于 x2 的连续值。上寻找一个切点,以获得最佳决策,需要效用/损失/成本函数,这与 ROC 曲线无关。Y^

我猜lr.eta是拟合模型中的线性预测器——logit,因为是它的常用符号;或者,如果不是,则来自拟合模型的概率。(原来是后者:请参阅https://stackoverflow.com/a/38532555/1864816。)您可以在. 在任何情况下,您都可以根据任意数量的预测变量的模型系数来计算它。(请注意,它不是每个预测变量的截止值,而是所有预测变量的函数。)ηROC

您的第一句话应该说(如图表所示)您正在寻找灵敏度和特异性之和最大化的地方。但为什么这是“最佳的”?假阳性结果是否与假阴性结果具有相同的重要性?这里

您可以找到真阳性率 (tpr) 与真阴性率 (tnr) 相交的阈值,这将是假阳性和假阴性之和最小的点。