Как построить кривую логистической регрессии в r


Часто вам может потребоваться построить кривую подобранной модели логистической регрессии в R.

К счастью, это довольно легко сделать, и в этом руководстве объясняется, как это сделать как в базовом R, так и в ggplot2.

Пример: построение кривой логистической регрессии в базе R

В следующем коде показано, как подогнать модель логистической регрессии с использованием переменных из встроенного набора данных mtcars в R, а затем как построить кривую логистической регрессии:

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

Кривая логистической регрессии в базе R

По оси X отображаются значения переменной-предиктора hp , а по оси Y отображается прогнозируемая вероятность переменной ответа am .

Мы ясно видим, что более высокие значения переменной-предиктора hp связаны с более низкими вероятностями переменной ответа vs равными 1.

Пример: построение кривой логистической регрессии в ggplot2

Следующий код показывает, как подогнать одну и ту же модель логистической регрессии и как построить кривую логистической регрессии с помощью библиотеки визуализации данных 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)) 

Кривая логистической регрессии в ggplot2

Обратите внимание, что это точно такая же кривая, полученная в предыдущем примере с использованием базы R.

Не стесняйтесь также менять стиль кривой. Например, мы могли бы превратить кривую в красную пунктирную линию:

 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 ) 

Дополнительные ресурсы

Введение в логистическую регрессию
Как выполнить логистическую регрессию в R (шаг за шагом)
Как выполнить логистическую регрессию в Python (шаг за шагом)
Как использовать функцию seq в R

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *