1

我正在使用OptimalCutpointsR从 ROC 曲线中找到最佳截止点。找到最佳阈值的标准是最大化 Youden 指数:

J = sensitivity + specificity - 1  

我试图在 matlab 中使用函数做同样的事情perfcurve。我perfcurve使用两个轴的默认标准运行,即 x 坐标中的 FPR 和 y 坐标中的 TPR。返回一个带有阈值的perfcurve矩阵,并根据标准选择其中一个。
问题是matlab给出的最佳阈值与R中的不同。但是,根据R的最佳阈值包含在matlab返回的阈值矩阵中。

如何复制 R 返回的结果与 matlab 中的结果?我怀疑在 matlab 中没有为 Youden 的索引正确设置标准。

4

1 回答 1

1

如果您查看文档perfcurve(特别是该OPTROCPT行),您会发现 matlab 用于查找最佳阈值的公式完全不同,并且在最优性标准中包含一个成本矩阵。

如果您想准确复制 R 中所做的事情,请使用XY返回值来计算每个阈值的约登索引,然后选择最佳值(请参阅如何在 matlab 中找到最大值及其在数组中的索引以了解如何做它)。

于 2014-02-18T08:09:38.000 回答