Area Under Curve in R (AUC)
Area Under Curve in R, when the response variable is binary, we utilize logistic regression as a statistical method to fit a regression model.
Area Under Curve in R
The following two metrics can be used to determine how well a logistic regression model fits a dataset.
Sensitivity: The likelihood that the model correctly predicts a positive result for observation when the result is positive. The “real positive rate” is another term for this.
Specificity: Refers to the likelihood that the model correctly predicts a negative consequence for an observation. The “real negative rate” is another name for this.
Making a ROC curve, which stands for the “receiver operating characteristic” curve, is one technique to illustrate these two measures.
The sensitivity is plotted on the y-axis, while (1 – specificity) is plotted on the x-axis. Calculating AUC, or “area under the curve,” is one approach to measure how well the logistic regression model works at classifying data.
The model is better if the AUC is close to 1.
The example below explains how to calculate AUC in R for a logistic regression model step by step.
Step 1: The first step is to load the data
We’ll start by loading the Default dataset from the ISLR package, which contains data on whether or not specific individuals have defaulted on a loan.
loading the dataset
#install.packages("ISLR") library(ISLR) df <- ISLR::Default head(df)
Now we can view the first six rows of the dataset
default student balance income 1 No No 729.5265 44361.625 2 No Yes 817.1804 12106.135 3 No No 1073.5492 31767.139 4 No No 529.2506 35704.494 5 No No 785.6559 38463.496 6 No Yes 919.5885 7491.559
Step 2: Fit the Logistic Regression Model
After that, we’ll use a logistic regression model to forecast the likelihood of an individual defaulting.
create a reproducible example
70 percent of the dataset should be used as a training set, while the remaining 30% should be used as a testing set.
sample <- sample(c(TRUE, FALSE), nrow(df), replace=TRUE, prob=c(0.7,0.3)) train <- df[sample, ] test <- df[!sample, ]
Fit logistic regression model
model <- glm(default~student+balance+income, family="binomial", data=train) model
Call: glm(formula = default ~ student + balance + income, family = "binomial", data = train) Coefficients: (Intercept) studentYes balance income -1.106e+01 -7.296e-01 5.940e-03 -2.305e-06 Degrees of Freedom: 7047 Total (i.e. Null); 7044 Residual Null Deviance: 2013 Residual Deviance: 1043 AIC: 1051
Step 3: Determine the Model’s AUC.
The AUC of the model will then be calculated using the auc() function from the pROC package. The syntax for this function is as follows.
In our example, here’s how to use this function:
for each participant in the test dataset, calculate the probability of default.
predicted <- predict(model, test, type="response")
Now we can calculate the AUC
library(pROC) auc(test$default, predicted) Area under the curve: 0.9361
Because this score is close to 1, it means that the model is highly good at predicting whether or not a person would fail on their loan.
If you like the article please share.