不同的参数,完全相同的AUC

时间:2018-02-22 13:46:08

标签: r roc auc

我有一个包含两列y和x的数据集。

我根据y执行了不同的算法来预测x

对于每种算法,我都有一个预测值的向量:p1p2

我使用了包auc的函数pROC

auc (response = test$x, predictor = p1)
auc (response = test$x, predictor = p2)

我在6位小数处有完全相同的AUC值。我的实施是否可能,或者出了什么问题?

更新: p1p2不同。

> pROC::auc (response = test$correct_value, predictor = p1)
Area under the curve: 0.8231
> pROC::auc (response = test$correct_value, predictor = p2)
Area under the curve: 0.8231
> head (p1)
        11         14         17         22         25         26 
0.01378549 0.01378549 0.01378549 0.01203714 0.01259412 0.01259412 
> head (p2)
       11        14        17        22        25        26 
0.7511921 0.7511921 0.7511921 0.6272434 0.6715637 0.6715637

1 个答案:

答案 0 :(得分:1)

@Jan van der Laan确实注意到all(rank(p1) == rank(p2))。但还有更多内容!

如果我正确理解您的问题,您可以使用基于单个随机变量glm的{​​{1}}模型进行预测。那么以下情况也是如此:

x

原因是单个随机变量> pROC::auc (response = test$correct_value, predictor = x) Area under the curve: 0.8231 > all(rank(p1) == rank(x)) [1] TRUE 的线性函数不可能重新排序数据。由于秩是ROC分析的唯一相关信息,如果要改进预测,则必须通过非线性函数(x或类似函数)传递数据,或者在等式中引入更多随机变量