## S3 method for class 'factor'
mcc(actual, predicted, ...)
## S3 method for class 'factor'
weighted.mcc(actual, predicted, w, ...)
## S3 method for class 'cmatrix'
mcc(x, ...)
## S3 method for class 'factor'
phi(actual, predicted, ...)
## S3 method for class 'factor'
weighted.phi(actual, predicted, w, ...)
## S3 method for class 'cmatrix'
phi(x, ...)
## Generic S3 method
mcc(...)
## Generic S3 method
weighted.mcc(
...,
w
)
## Generic S3 method
phi(...)
## Generic S3 method
weighted.phi(
...,
w )
Matthews Correlation Coefficient
mcc.factor | R Documentation |
Description
The mcc()
-function computes the Matthews Correlation Coefficient (MCC), also known as the \(\phi\)-coefficient, between two vectors of predicted and observed factor()
values. The weighted.mcc()
function computes the weighted Matthews Correlation Coefficient.
Usage
Arguments
actual
|
A vector of |
predicted
|
A vector of |
…
|
micro = NULL, na.rm = TRUE Arguments passed into other methods |
w
|
A |
x
|
A confusion matrix created |
Value
A <numeric>
-vector of length 1
Definition
The metric is calculated as follows,
\[ \frac{\#TP \times \#TN - \#FP \times \#FN}{\sqrt{(\#TP + \#FP)(\#TP + \#FN)(\#TN + \#FP)(\#TN + \#FN)}} \]
Examples
# 1) recode Iris
# to binary classification
# problem
$species_num <- as.numeric(
iris$Species == "virginica"
iris
)
# 2) fit the logistic
# regression
<- glm(
model formula = species_num ~ Sepal.Length + Sepal.Width,
data = iris,
family = binomial(
link = "logit"
)
)
# 3) generate predicted
# classes
<- factor(
predicted as.numeric(
predict(model, type = "response") > 0.5
),levels = c(1,0),
labels = c("Virginica", "Others")
)
# 3.1) generate actual
# classes
<- factor(
actual x = iris$species_num,
levels = c(1,0),
labels = c("Virginica", "Others")
)
# 4) evaluate performance
# using Matthews Correlation Coefficient
cat(
"Matthews Correlation Coefficient", mcc(
actual = actual,
predicted = predicted
),"Matthews Correlation Coefficient (weighted)", weighted.mcc(
actual = actual,
predicted = predicted,
w = iris$Petal.Length/mean(iris$Petal.Length)
),sep = "\n"
)