2017-01-03 4 views
2

Ich verwende R v3.3.2 und Caret 6.0.71 (d. H. Neueste Versionen), um einen logistischen Regressionsklassifizierer zu konstruieren. Ich verwende die confusionMatrix-Funktion, um Statistiken zur Beurteilung der Leistung zu erstellen.R Confusion Matrix Sensitivitäts- und Spezifitätsmarkierung

logRegConfMat < - Konfusionsmatrix (logRegPrediction, valData [, "gesehen"])

  • Referenz 0, Prediction 0 = 30
  • Referenz 1, Prediction 0 = 14
  • Referenz 0, Prediction 1 = 60
  • Referenz 1, Prediction 1 = 164

Genauigkeit: 0,7239
Empfindlichkeit: 0,3333
Spezifität: 0,9213

Der Zielwert in meinen Daten (gesehen) verwendet 1 für wahr und 0 für falsch. Ich nehme an, dass die Spalten Referenz (Ground Truth) und Predication (Classifier) ​​in der Konfusionsmatrix der gleichen Konvention folgen. Daher meine Ergebnisse zeigen:

  • Wahre Negatives (TN) 30
  • wahr Positiven (TP) 164
  • False Negatives (FN) 14
  • Fehlalarme (FP) 60

Frage: Warum wird die Sensitivität als 0.3333 angegeben und die Spezifität als 0.9213 angegeben? Ich hätte gedacht, es wäre anders herum - siehe unten.

Ich bin widerwillig zu glauben, dass es einen Fehler in der R confusionMatrix-Funktion gibt, da nichts gemeldet wurde und dies scheint ein signifikanter Fehler zu sein.


meisten Referenzen Spezifität Berechnen und Empfindlichkeit definieren sie wie folgt - dh www.medcalc.org/calc/diagnostic_test.php

  • Empfindlichkeit = TP/(TP + FN) = 164/(164 + 14) = 0,9213
  • Spezifizität = TN/(FP + TN) = 30/(60 + 30) = 0,3333

Antwort

5

Gemäß der Dokumentation ?confusionMatrix:

"Wenn es nur zwei Faktorstufen gibt, wird die erste Ebene als das" positive "Ergebnis verwendet."

Daher wird in Ihrem Beispiel positives Ergebnis 0 sein, und Bewertungsmetriken werden falsch herum sein. Um Standardverhalten außer Kraft setzen, können Sie das Argument positive = auf den korrekten Wert eingestellt, leider:

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

Danke - ich bekam die gleiche Antwort von Paketautor Max Kukn.Ich würde jedem, der diese Funktion benutzt, raten, ausdrücklich das positive Argument zu geben, um diese Art von Problem zu vermeiden. – user1844985

+1

@ Mtoto vielen Dank, verbrachte ich Stunden, sich über dieses Problem zu wundern – Diego