我使用OptimalCutpoints
中的R
包来从ROC曲线中找到最佳截止点。找到最佳阈值的标准是最大化Youden指数:
J = sensitivity + specificity - 1
我正在尝试使用函数perfcurve
在matlab中执行相同的操作。我使用两个轴的默认条件运行perfcurve
,x坐标中的FPR和y坐标中的TPR。 perfcurve
返回一个带阈值的矩阵,并根据标准选择其中一个矩阵
问题是matlab给出的最佳阈值与R不同。但是,根据R的最佳阈值包含在matlab返回的阈值矩阵中。
如何使用matlab中的结果复制R返回的结果?我怀疑在Youlab索引的matlab中没有正确设置标准。
答案 0 :(得分:1)
如果您查看the documentation for perfcurve
(特别是OPTROCPT
行),您会发现matlab用于查找最佳阈值的公式非常不同,并且在最优性标准中包含成本矩阵。
如果要完全复制R中的内容,请使用X
和Y
返回值计算每个阈值的Youden索引,然后选择最佳值(请参阅如何{{ 3}}了解如何做到这一点。)