Como plotar o limite de decisão em R para o modelo de regressão logística?


Respostas:


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

texto alternativo

Devo observar que a separação perfeita ocorre aqui; portanto, a glmfunção fornece um aviso. Mas isso não é importante aqui, pois o objetivo é ilustrar como desenhar o limite linear e as observações coloridas de acordo com suas covariáveis.


Espero que eu não sou antiquado se eu usar rede :-)
suncoolsu

2
Espero também que, se este for um problema de HW, você não copie e cole simplesmente.
suncoolsu

Obrigado. Esta não é uma pergunta de HW e a resposta é útil para eu entender meu modelo.
precisa saber é o seguinte

oh sim, você é :)
mpiktas

1
Alguém pode me explicar a lógica por trás da encosta e interceptar? (em relação ao modelo logístico)
Fernando

22

Queria abordar a pergunta em comentário à resposta aceita de Fernando: Alguém pode explicar a lógica por trás da encosta e interceptar?

A hipótese de regressão logística assume a forma de:

hθ=g(z)

g(z)z

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

y=1hθ0,5

θ0 0+θ1x1+θ2x20 0

o acima é o limite de decisão e pode ser reorganizado como:

x2-θ0 0θ2+-θ1θ2x1

y=mx+bmb


2
Boa explicação que acompanha a resposta acima!
Augustin
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.