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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *