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

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

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

К счастью, это довольно легко сделать, и в этом руководстве объясняется, как это сделать как в base 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 связаны с более низкими вероятностями переменной ответа по сравнению с вероятностью равной 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.