复制R和matlab导致从ROC曲线中找到最佳阈值

时间:2014-02-17 21:30:20

标签: r matlab threshold roc

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

J = sensitivity + specificity - 1  

我正在尝试使用函数perfcurve在matlab中执行相同的操作。我使用两个轴的默认条件运行perfcurve,x坐标中的FPR和y坐标中的TPR。 perfcurve返回一个带阈值的矩阵,并根据标准选择其中一个矩阵 问题是matlab给出的最佳阈值与R不同。但是,根据R的最佳阈值包含在matlab返回的阈值矩阵中。

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

1 个答案:

答案 0 :(得分:1)

如果您查看the documentation for perfcurve(特别是OPTROCPT行),您会发现matlab用于查找最佳阈值的公式非常不同,并且在最优性标准中包含成本矩阵。

如果要完全复制R中的内容,请使用XY返回值计算每个阈值的Youden索引,然后选择最佳值(请参阅如何{{ 3}}了解如何做到这一点。)