Como traçar uma curva de regressão logística em r


Muitas vezes você pode querer traçar a curva de um modelo de regressão logística ajustado em R.

Felizmente, é muito fácil de fazer e este tutorial explica como fazê-lo tanto na base R quanto no ggplot2.

Exemplo: traçando uma curva de regressão logística na base R

O código a seguir mostra como ajustar um modelo de regressão logística usando variáveis do conjunto de dados integrado mtcars em R e, em seguida, como traçar a curva de regressão logística:

 #fit logistic regression model
model <- glm(vs ~ hp, data=mtcars, family=binomial)

#define new data frame that contains predictor variable
newdata <- data. frame (hp=seq(min(mtcars$hp), max(mtcars$hp),len= 500 ))

#use fitted model to predict values of vs
newdata$vs = predict(model, newdata, type=" response ")

#plot logistic regression curve
plot(vs ~hp, data=mtcars, col=" steelblue ")
lines(vs ~ hp, newdata, lwd= 2 )

Curva de regressão logística na base R

O eixo x exibe os valores da variável preditora hp e o eixo y exibe a probabilidade prevista da variável resposta am .

Podemos ver claramente que valores mais elevados da variável preditora hp estão associados a probabilidades mais baixas da variável resposta vs ser igual a 1.

Exemplo: traçando uma curva de regressão logística em ggplot2

O código a seguir mostra como ajustar o mesmo modelo de regressão logística e como traçar a curva de regressão logística usando a biblioteca de visualização de dados ggplot2 :

 library (ggplot2)

#plot logistic regression curve
ggplot(mtcars, aes (x=hp, y=vs)) + 
  geom_point(alpha=.5) +
  stat_smooth(method=" glm ", se=FALSE, method. args = list(family=binomial)) 

Curva de regressão logística em ggplot2

Observe que esta é exatamente a mesma curva produzida no exemplo anterior usando a base R.

Sinta-se à vontade para alterar o estilo da curva também. Por exemplo, poderíamos transformar a curva em uma linha pontilhada vermelha:

 library (ggplot2)

#plot logistic regression curve
ggplot(mtcars, aes (x=hp, y=vs)) + 
  geom_point(alpha=.5) +
  stat_smooth(method=" glm ", se=FALSE, method. args = list(family=binomial),
              col=" red ", lty= 2 ) 

Recursos adicionais

Introdução à regressão logística
Como realizar a regressão logística em R (passo a passo)
Como realizar regressão logística em Python (passo a passo)
Como usar a função seq em R

Add a Comment

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