Jak utworzyć macierz zamieszania w r (krok po kroku)
Regresja logistyczna to rodzaj regresji, którego możemy użyć, gdy zmienna odpowiedzi jest binarna.
Powszechnym sposobem oceny jakości modelu regresji logistycznej jest utworzenie macierzy zamieszania , czyli tabeli 2 × 2, która pokazuje przewidywane wartości modelu w porównaniu z rzeczywistymi wartościami testowego zbioru danych.
Poniższy przykład pokazuje krok po kroku, jak utworzyć macierz zamieszania w R.
Krok 1: Dopasuj model regresji logistycznej
W tym przykładzie użyjemy domyślnego zestawu danych z pakietu ISLR . Będziemy wykorzystywać status studenta, stan konta bankowego i roczny dochód, aby przewidzieć prawdopodobieństwo, że dana osoba nie spłaci pożyczki.
Poniższy kod pokazuje, jak dopasować model regresji logistycznej do tego zbioru danych:
#load necessary packages library (caret) library (InformationValue) library (ISLR) #load dataset data <-Default #split dataset into training and testing set set. seeds (1) sample <- sample(c(TRUE, FALSE), nrow(data), replace= TRUE , prob=c(0.7,0.3)) train <- data[sample, ] test <- data[!sample, ] #fit logistic regression model model <- glm(default~student+balance+income, family=" binomial ", data=train)
Krok 2: Utwórz macierz zamieszania
Następnie użyjemy funkcji cancelMatrix() z pakietu caret , aby utworzyć macierz zamieszania:
#use model to predict probability of default
predicted <- predict(model, test, type="response")
#convert defaults from "Yes" and "No" to 1's and 0's
test$default <- ifelse(test$default==" Yes ", 1, 0)
#find optimal cutoff probability to use to maximize accuracy
optimal <- optimalCutoff(test$default, predicted)[1]
#create confusion matrix
confusionMatrix(test$default, predicted)
0 1
0 2912 64
1 21 39
Krok 3: Oceń macierz zamieszania
Za pomocą macierzy zamieszania możemy również obliczyć następujące metryki:
- Czułość: „wskaźnik prawdziwej pozytywności” – odsetek osób, które zgodnie z przewidywaniami modelu nie wywiążą się z zobowiązania.
- Specyfika: „Współczynnik prawdziwie ujemny” – odsetek osób, które zgodnie z przewidywaniami modelu nie zrealizują zobowiązania.
- Całkowity współczynnik błędnych klasyfikacji: Procent wszystkich błędnych klasyfikacji dokonanych przez model.
Poniższy kod pokazuje, jak obliczyć te metryki:
#calculate sensitivity
sensitivity(test$default, predicted)
[1] 0.3786408
#calculate specificity
specificity(test$default, predicted)
[1] 0.9928401
#calculate total misclassification error rate
misClassError(test$default, predicted, threshold =optimal)
[1] 0.027
Całkowity poziom błędu klasyfikacji dla tego modelu wynosi 2,7% .
Ogólnie rzecz biorąc, im niższy jest ten wskaźnik, tym lepiej model jest w stanie przewidzieć wyniki. Dlatego ten konkretny model okazuje się bardzo skuteczny w przewidywaniu, czy dana osoba nie wywiąże się ze zobowiązań.