Een verwarringsmatrix creëren in r (stap voor stap)


Logistische regressie is een type regressie dat we kunnen gebruiken als de responsvariabele binair is.

Een gebruikelijke manier om de kwaliteit van een logistisch regressiemodel te beoordelen, is door een verwarringsmatrix te maken, een tabel van 2 × 2 die de voorspelde waarden van het model weergeeft versus de werkelijke waarden van de testdataset.

Het volgende stapsgewijze voorbeeld laat zien hoe u een verwarringsmatrix in R maakt.

Stap 1: Pas het logistische regressiemodel toe

Voor dit voorbeeld gebruiken we de standaarddataset uit het ISLR- pakket. We zullen de studentenstatus, het banksaldo en het jaarinkomen gebruiken om de waarschijnlijkheid te voorspellen dat een bepaalde persoon zijn lening niet kan afbetalen.

De volgende code laat zien hoe u een logistisch regressiemodel aan deze gegevensset kunt aanpassen:

 #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)

Stap 2: Creëer de verwarringsmatrix

Vervolgens zullen we de functie verwarringMatrix() uit het dakje- pakket gebruiken om een verwarringsmatrix te maken:

 #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

Stap 3: Evalueer de verwarringsmatrix

We kunnen ook de volgende statistieken berekenen met behulp van de verwarringsmatrix:

  • Gevoeligheid: Het ‘echte positiviteitspercentage’ – het percentage individuen waarvan het model correct voorspelde dat ze in gebreke zouden blijven.
  • Specificiteit: Het “echte negatieve percentage” – het percentage individuen waarvan het model correct voorspelde dat ze niet in gebreke zouden blijven.
  • Totaal percentage misclassificaties: percentage van het totale aantal misclassificaties dat door het model is gemaakt.

De volgende code laat zien hoe u deze statistieken berekent:

 #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

Het totale classificatiefoutenpercentage bedraagt voor dit model 2,7% .

Over het algemeen geldt: hoe lager dit percentage, hoe beter het model de resultaten kan voorspellen. Dit specifieke model blijkt daarom zeer effectief te zijn bij het voorspellen of een individu in gebreke zal blijven of niet.

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert