Como calcular o coeficiente de correlação de matthews em r
O Coeficiente de Correlação de Matthews (MCC) é uma métrica que podemos usar para avaliar o desempenho de um modelo de classificação .
É calculado da seguinte forma:
MCC = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)
Ouro:
- TP : Número de verdadeiros positivos
- TN : Número de verdadeiros negativos
- FP : Número de falsos positivos
- FN : Número de falsos negativos
Esta métrica é particularmente útil quando as duas classes estão desequilibradas, ou seja, uma classe aparece muito mais que a outra.
O valor de MCC está entre -1 e 1 onde:
- -1 indica discordância total entre as aulas previstas e as aulas reais
- 0 significa suposições completamente aleatórias
- 1 indica concordância completa entre as aulas previstas e as aulas reais
Por exemplo, suponha que um analista esportivo use um modelo de regressão logística para prever se 400 jogadores diferentes de basquete universitário serão ou não convocados para a NBA.
A seguinte matriz de confusão resume as previsões feitas pelo modelo:
Para calcular o MCC do modelo, podemos utilizar a seguinte fórmula:
- MCC = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)
- MCC = (15*375-5*5) / √ (15+5)(15+5)(375+5)(375+5)
- MCC = 0,7368
O coeficiente de correlação de Matthews é 0,7368 .
Este valor é um pouco próximo de um, indicando que o modelo está fazendo um trabalho decente ao prever se os jogadores serão convocados ou não.
O exemplo a seguir mostra como calcular o MCC para este cenário específico usando a função mcc() do pacote mltools em R.
Exemplo: Calculando o Coeficiente de Correlação de Matthews em R
O código a seguir mostra como definir um vetor de classes previstas e um vetor de classes reais e, em seguida, calcular o coeficiente de correlação de Matthews usando a função mcc() do pacote mltools :
library (mltools) #define vector of actual classes actual <- rep (c(1, 0), times =c(20, 380)) #define vector of predicted classes preds <- rep (c(1, 0, 1, 0), times =c(15, 5, 5, 375)) #calculate Matthews correlation coefficient mcc(preds, actual) [1] 0.7368421
O coeficiente de correlação de Matthews é 0,7368 .
Isso corresponde ao valor que calculamos manualmente anteriormente.
Se quiser calcular o coeficiente de correlação de Matthews para uma matriz de confusão, você pode usar o argumento confusãoM da seguinte forma:
library (mltools) #create confusion matrix conf_matrix <- matrix(c(15, 5, 5, 375), nrow= 2 ) #view confusion matrix conf_matrix [,1] [,2] [1,] 15 5 [2,] 5,375 #calculate Matthews correlation coefficient for confusion matrix mcc(confusionM = conf_matrix) [1] 0.7368421
Novamente, o coeficiente de correlação de Matthews é 0,7368.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:
Como realizar regressão logística em R
Como traçar uma curva ROC usando ggplot2
Como calcular a pontuação F1 em R