R Confusion Matrix敏感性和特异性标记

wpq*_*pqs 3 r confusion-matrix r-caret

我使用R v3.3.2和Caret 6.0.71(即最新版本)来构建逻辑回归分类器.我使用confusionMatrix函数创建统计数据来判断其性能.

logRegConfMat < - confusionMatrix(logRegPrediction,valData [,"Seen"])

  • 参考0,预测0 = 30
  • 参考文献1,预测0 = 14
  • 参考0,预测1 = 60
  • 参考文献1,预测1 = 164

准确度:0.7239
灵敏度:0.3333
特异性:0.9213

我的数据中的目标值(Seen)使用1表示true,0表示false.我假设混淆矩阵中的参考(地面实况)列和预测(分类器)行遵循相同的约定.因此我的结果显示:

  • 真阴性(TN)30
  • 真阳性(TP)164
  • 假阴性(FN)14
  • 误报(FP)60

问题:为什么灵敏度为0.3333,特异性为0.9213?我原本以为它是相反的 - 见下文.

我不愿意相信R confusionMatrix函数中存在错误,因为没有报告任何内容,这似乎是一个重大错误.


关于计算特异性和敏感性的大多数参考文献将它们定义如下 - 即www.medcalc.org/calc/diagnostic_test.php

  • 灵敏度= TP /(TP + FN)= 164 /(164 + 14)= 0.9213
  • 特异性= TN /(FP + TN)= 30 /(60 + 30)= 0.3333

mto*_*oto 8

根据文件?confusionMatrix:

"如果只有两个因子水平,第一个水平将被用作"积极"结果."

因此,在您的示例中,积极的结果将是0,并且评估指标将是错误的方式.要覆盖默认行为,可以将参数positive =设置为正确的值,唉:

 confusionMatrix(logRegPrediction, valData[,"Seen"], positive = "1")
Run Code Online (Sandbox Code Playgroud)