Jak wykreślić granicę decyzji w R dla modelu regresji logistycznej?

16

Zrobiłem model regresji logistycznej używając glm w R. Mam dwie niezależne zmienne. Jak wykreślić granicę decyzyjną mojego modelu na wykresie rozrzutu dwóch zmiennych. Na przykład, jak wykreślić rysunek taki jak: http://onlinecourses.science.psu.edu/stat557/node/55

Dzięki.

użytkownik2755
źródło
2
Link do postaci jest martwy.
Nick Stauner,

Odpowiedzi:

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(...)
       })

alternatywny tekst

Muszę zauważyć, że zachodzi tutaj idealna separacja, dlatego glmfunkcja ta ostrzega. Nie ma to jednak znaczenia tutaj, ponieważ celem jest zilustrowanie, jak narysować granicę liniową i obserwacje pokolorowane zgodnie z ich współzmiennymi.

suncoolsu
źródło
Mam nadzieję, że nie jestem staroświecki, jeśli używam sieci :-)
suncoolsu 13.01.11
2
Mam również nadzieję, że jeśli jest to problem ze sprzętem, nie będziesz po prostu kopiować wklejania.
suncoolsu 13.01.11
Dzięki. To nie jest pytanie sprzętowe, a odpowiedź pomaga mi zrozumieć mój model.
user2755
o tak, jesteś :)
mpiktas,
1
Czy ktoś może wyjaśnić mi logikę za stokiem i przechwycić? (w odniesieniu do modelu logistycznego)
Fernando
22

Chciałem odpowiedzieć na pytanie w komentarzu do zaakceptowanej powyżej odpowiedzi Fernando: Czy ktoś może wyjaśnić logikę stoku i przechwycić?

Hipoteza regresji logistycznej ma postać:

hθ=g(z)

g(z)z

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

y=1hθ0.5

θ0+θ1x1+θ2x20

powyższe stanowi granicę decyzji i można je zmienić w następujący sposób:

x2θ0θ2+θ1θ2x1

y=mx+bmb

Andy
źródło
2
Dobre wyjaśnienie towarzyszące powyższej odpowiedzi!
Augustin,