Come calcolare il coefficiente di correlazione di matthews in r


Il coefficiente di correlazione di Matthews (MCC) è una metrica che possiamo utilizzare per valutare le prestazioni di unmodello di classificazione .

Viene calcolato come segue:

Centro clienti = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)

Oro:

  • TP : numero di veri positivi
  • TN : numero di veri negativi
  • FP : Numero di falsi positivi
  • FN : Numero di falsi negativi

Questa metrica è particolarmente utile quando le due classi sono sbilanciate, ovvero una classe appare molto più dell’altra.

Il valore di MCC è compreso tra -1 e 1 dove:

  • -1 indica un disaccordo totale tra le classi previste e le classi effettive
  • 0 significa ipotesi completamente casuali
  • 1 indica un completo accordo tra le classi previste e le classi effettive

Supponiamo, ad esempio, che un analista sportivo utilizzi un modello di regressione logistica per prevedere se 400 diversi giocatori di basket universitari verranno arruolati o meno nella NBA.

La seguente matrice di confusione riassume le previsioni fatte dal modello:

Per calcolare l’MCC del modello, possiamo utilizzare la seguente formula:

  • Centro clienti = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)
  • Centro clienti = (15*375-5*5) / √ (15+5)(15+5)(375+5)(375+5)
  • Centro clienti = 0,7368

Il coefficiente di correlazione di Matthews risulta essere 0,7368 .

Questo valore è piuttosto vicino a uno, indicando che il modello sta facendo un buon lavoro nel prevedere se i giocatori verranno scelti o meno.

L’esempio seguente mostra come calcolare il Centro clienti per questo scenario specifico utilizzando la funzione mcc() del pacchetto mltools in R.

Esempio: calcolo del coefficiente di correlazione di Matthews in R

Il codice seguente mostra come definire un vettore di classi previste e un vettore di classi effettive, quindi calcolare il coefficiente di correlazione di Matthews utilizzando la funzione mcc() del pacchetto 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

Il coefficiente di correlazione di Matthews è 0,7368 .

Questo corrisponde al valore che abbiamo calcolato manualmente in precedenza.

Se vuoi calcolare il coefficiente di correlazione Matthews per una matrice di confusione, puoi utilizzare l’argomento confusionM come segue:

 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

Ancora una volta, il coefficiente di correlazione di Matthews è 0,7368.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come eseguire la regressione logistica in R
Come tracciare una curva ROC utilizzando ggplot2
Come calcolare il punteggio F1 in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *