2017-01-03 64 views
2

我使用R v3.3.2和插頁6.0.71(即最新版本)來構建邏輯迴歸分類器。我正在使用confusionMatrix函數來創建用於判斷其性能的統計信息。R混淆矩陣的敏感性和特異性標籤

logRegConfMat < - 混淆矩陣(logRegPrediction,valData [, 「看」])

  • 參考0,預測0 = 30
  • 文獻1中,預測0 = 14
  • 參考0,預測1 = 60
  • 文獻1中,預測1 = 164

精度:0.7239
靈敏度:0.3333
特異性:0.9213

我的數據中的目標值(見)使用1作爲真,0作爲假。我假設混淆矩陣中的參考(基礎真值)列和預測(分類器)行遵循相同的約定。因此,我的結果表明:

  • 真陰性(TN)30個
  • 真陽性(TP)164個
  • 假陰性(FN)14個
  • 誤報(FP)60

問題:爲什麼敏感度爲0.3333,特異度爲0.9213?我會認爲這是相反的 - 見下文。

我不願意相信在R confusionMatrix函數中有bug,因爲沒有任何報告,這似乎是一個重大的錯誤。


關於計算的特異性和靈敏度大多數引用將它們定義如下 - 即www.medcalc.org/calc/diagnostic_test.php

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

回答

5

根據文檔?confusionMatrix

「如果只有兩個因子水平,第一個水平將被用作 的」正面「結果。」

因此,在您的示例中,積極的結果將是0,評估指標將是錯誤的方法。要覆蓋默認行爲,可以將參數positive =設置爲正確的值,唉:

confusionMatrix(logRegPrediction, valData[,"Seen"], positive = "1") 
+0

謝謝 - 我從包筆者最大Kukn相同的答案。我建議任何人使用這個函數明確地給出積極的論點來避免這類問題。 – user1844985

+1

@mtoto非常感謝,我花了幾個小時想知道這個問題 – Diego