Jak obliczyć współczynnik korelacji matthewsa w r
Współczynnik korelacji Matthewsa (MCC) to metryka, której możemy użyć do oceny wydajności modelu klasyfikacyjnego .
Oblicza się go w następujący sposób:
MCC = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)
Złoto:
- TP : Liczba prawdziwie pozytywnych wyników
- TN : Liczba prawdziwych negatywów
- FP : Liczba fałszywych alarmów
- FN : Liczba wyników fałszywie ujemnych
Metryka ta jest szczególnie przydatna, gdy obie klasy są niezrównoważone, to znaczy, że jedna klasa pojawia się znacznie częściej niż druga.
Wartość MCC mieści się w przedziale od -1 do 1, gdzie:
- -1 oznacza całkowitą rozbieżność między klasami przewidywanymi a klasami rzeczywistymi
- 0 oznacza całkowicie losowe domysły
- 1 oznacza całkowitą zgodność klas przewidywanych z klasami rzeczywistymi
Załóżmy na przykład, że analityk sportowy korzysta z modelu regresji logistycznej , aby przewidzieć, czy 400 różnych koszykarzy z college’u zostanie powołanych do NBA.
Poniższa macierz zamieszania podsumowuje przewidywania dokonane przez model:

Aby obliczyć MCC modelu, możemy skorzystać z następującego wzoru:
- 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
Współczynnik korelacji Matthewsa okazuje się wynosić 0,7368 .
Wartość ta jest nieco bliska jedności, co wskazuje, że model dobrze radzi sobie z przewidywaniem, czy gracze zostaną powołani do draftu, czy nie.
Poniższy przykład pokazuje, jak obliczyć MCC dla tego konkretnego scenariusza przy użyciu funkcji mcc() z pakietu mltools w R.
Przykład: Obliczanie współczynnika korelacji Matthewsa w R
Poniższy kod pokazuje jak zdefiniować wektor przewidywanych klas i wektor rzeczywistych klas, a następnie obliczyć współczynnik korelacji Matthewsa za pomocą funkcji mcc() z pakietu 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
Współczynnik korelacji Matthewsa wynosi 0,7368 .
Odpowiada to wartości, którą obliczyliśmy wcześniej ręcznie.
Jeśli chcesz obliczyć współczynnik korelacji Matthewsa dla macierzy zamieszania, możesz użyć argumentu zamieszanieM w następujący sposób:
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
Ponownie współczynnik korelacji Matthewsa wynosi 0,7368.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:
Jak przeprowadzić regresję logistyczną w R
Jak wykreślić krzywą ROC za pomocą ggplot2
Jak obliczyć wynik F1 w R