Binary classification measure defined as $$ \frac{\mathrm{TP} \cdot \mathrm{TN} - \mathrm{FP} \cdot \mathrm{FN}}{\sqrt{(\mathrm{TP} + \mathrm{FP}) (\mathrm{TP} + \mathrm{FN}) (\mathrm{TN} + \mathrm{FP}) (\mathrm{TN} + \mathrm{FN})}}. $$

mcc(truth, response, positive, ...)

Arguments

truth

:: factor()
True (observed) labels. Must have the exactly same two levels and the same length as response.

response

:: factor()
Predicted response labels. Must have the exactly same two levels and the same length as truth.

positive

:: character(1)
Name of the positive class.

...

:: any
Additional arguments. Currently ignored.

Value

Performance value as numeric(1).

Note

This above formula is undefined if any of the four sums in the denominator is 0. The denominator is then set to 1.

Meta Information

  • Type: "binary"

  • Range: \([-1, 1]\)

  • Minimize: FALSE

  • Required prediction: response

References

Matthews BW (1975). “Comparison of the predicted and observed secondary structure of T4 phage lysozyme.” Biochimica et Biophysica Acta (BBA) - Protein Structure, 405(2), 442--451. doi: 10.1016/0005-2795(75)90109-9 .

See also

Other Binary Classification Measures: auc(), bbrier(), dor(), fbeta(), fdr(), fnr(), fn(), fomr(), fpr(), fp(), npv(), ppv(), tnr(), tn(), tpr(), tp()

Examples

set.seed(1) lvls = c("a", "b") truth = factor(sample(lvls, 10, replace = TRUE), levels = lvls) response = factor(sample(lvls, 10, replace = TRUE), levels = lvls) mcc(truth, response, positive = "a")
#> [1] -0.25