Как построить границу решения в R для модели логистической регрессии?

16

Я сделал модель логистической регрессии, используя glm в R. У меня есть две независимые переменные. Как я могу построить границу решения моей модели на графике рассеяния двух переменных. Например, как я могу нарисовать фигуру, например: http://onlinecourses.science.psu.edu/stat557/node/55

Благодарю.

user2755
источник
2
Ссылка на рисунок мертва.
Ник Стаунер

Ответы:

25
set.seed(1234)

x1 <- rnorm(20, 1, 2)
x2 <- rnorm(20)

y <- sign(-1 - 2 * x1 + 4 * x2 )

y[ y == -1] <- 0

df <- cbind.data.frame( y, x1, x2)

mdl <- glm( y ~ . , data = df , family=binomial)

slope <- coef(mdl)[2]/(-coef(mdl)[3])
intercept <- coef(mdl)[1]/(-coef(mdl)[3]) 

library(lattice)
xyplot( x2 ~ x1 , data = df, groups = y,
   panel=function(...){
       panel.xyplot(...)
       panel.abline(intercept , slope)
       panel.grid(...)
       })

альтернативный текст

Я должен отметить, что здесь происходит идеальное разделение, поэтому glmфункция дает вам предупреждение. Но это не важно здесь, так как цель состоит в том, чтобы проиллюстрировать, как нарисовать линейную границу и цвета наблюдений в соответствии с их ковариатами.

suncoolsu
источник
Я надеюсь, что я не старомоден, если использую решетку :-)
suncoolsu
2
Я также надеюсь, что если это проблема HW, вы не просто скопируете вставить.
Suncoolsu
Благодарю. Это не вопрос HW, и ответ поможет мне понять мою модель.
user2755
о да вы :)
mpiktas
1
Может кто-нибудь объяснить мне логику наклона и перехват? (относительно логистической модели)
Фернандо
22

Хотел ответить на вопрос в комментарии к принятому выше ответу Фернандо: может кто-нибудь объяснить логику наклона и перехват?

Гипотеза о логистической регрессии принимает форму:

hθ=g(z)

g(z)z

z=θ0+θ1x1+θ2x2

y=1hθ0.5

θ0+θ1x1+θ2x20

вышеуказанное является границей решения и может быть переставлено как:

x2θ0θ2+θ1θ2x1

y=mx+bmb

Энди
источник
2
Хорошее объяснение, сопровождающее ответ выше!
Августин