library(pROC)
auc(response=as.numeric(fold_test[,61]),predictor=fold_predict,levels = c(0, 1), direction = "<")
或pROC::roc(predictor = score2,response = class,
levels = c(0,1),
direction='<')
很多时候,我们进行ROC分析时,默认都是去计算class=1那组,也就是阳性组的AUC,而class=0,被我们默认当成了阴性组,也就是参考组。在ROCit包中就是这样的,但是在大名鼎鼎的pROC包中,ROC分析的依据却是中位数的大小。这一点千万要注意。
如果你用pROC包做ROC分析,那么接下来的AUC和cutoff value都是要注意的,如果你不事先设置参考,得到的结果可能就搞不清楚是阴性组的AUC还是阳性组的AUC,仅仅是中位数高的那组的AUC,而你默认都是当成阳性组的AUC。
千万要注意这一点!
告诉R去ROC谁
在pROC::roc()函数中,有2个参数是需要我们设置的levels和direction,levels表示结局变量中的数值水平,direction的值是大于号>或小于号<,表示levels的第1个数值和第2个数值的大小关系。
现在我们给levels赋值0和1,direction赋值小于号<,表示0组的中位数小于1组的中位数,让pROC始终ROC1组,AUC1组。
pROC::roc(predictor = score2,response = class,
levels = c(0,1),
direction='<')