Como calcular auc (área sob a curva) em r


A regressão logística é um método estatístico que usamos para ajustar um modelo de regressão quando a variável de resposta é binária. Para avaliar quão bem um modelo de regressão logística se ajusta a um conjunto de dados, podemos observar as duas métricas a seguir:

  • Sensibilidade: probabilidade de o modelo prever um resultado positivo para uma observação quando o resultado é realmente positivo. Isso também é chamado de “taxa positiva verdadeira”.
  • Especificidade: a probabilidade de o modelo prever um resultado negativo para uma observação quando o resultado é realmente negativo. Isso também é chamado de “taxa verdadeiramente negativa”.

Uma maneira de visualizar essas duas medições é criar uma curva ROC , que significa curva “característica operacional do receptor”.

Este é um gráfico que exibe a sensibilidade ao longo do eixo y e (1 – especificidade) ao longo do eixo x. Uma forma de quantificar a eficácia do modelo de regressão logística na classificação dos dados é calcular a AUC , que significa “área sob a curva”.

Quanto mais próximo o AUC estiver de 1, melhor será o modelo.

O exemplo passo a passo a seguir mostra como calcular a AUC para um modelo de regressão logística em R.

Etapa 1: carregar dados

Primeiro, carregaremos o conjunto de dados padrão do pacote ISLR , que contém informações sobre se várias pessoas deixaram de pagar um empréstimo ou não.

 #load dataset
data <- ISLR::Default

#view first six rows of dataset
head(data)

  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

Passo 2: Ajustar o modelo de regressão logística

A seguir, ajustaremos um modelo de regressão logística para prever a probabilidade de um indivíduo entrar em default:

 #make this example reproducible
set. seeds (1)

#Use 70% of dataset as training set and remaining 30% as testing set
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)

Etapa 3: Calcular o modelo AUC

A seguir, usaremos a função auc() do pacote pROC para calcular a AUC do modelo. Esta função usa a seguinte sintaxe:

nenhum(resposta, prevista)

Veja como usar esta função em nosso exemplo:

 #calculate probability of default for each individual in test dataset
predicted <- predict(model, test, type=" response ")

#calculate AUC
library (pROC)
auc(test$default, predicted)

Setting levels: control = No, case = Yes
Setting direction: controls < boxes
Area under the curve: 0.9437

A AUC do modelo é 0,9437 .

Uma vez que este valor está próximo de 1, isto indica que o modelo está a fazer um trabalho muito bom ao prever se um indivíduo irá ou não incumprir o seu empréstimo.

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *