Come tracciare il confine decisionale in R per il modello di regressione logistica?


Risposte:


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

testo alternativo

Devo osservare che qui si verifica una separazione perfetta, quindi la glmfunzione ti avvisa. Ma ciò non è importante qui perché lo scopo è quello di illustrare come disegnare il confine lineare e le osservazioni colorate in base alle loro covariate.


Spero di non essere vecchio stile se uso reticolo :-)
suncoolsu

2
Spero anche che se questo è un problema HW, non copierete semplicemente incolla.
suncoolsu,

Grazie. Questa non è una domanda HW e la risposta mi è utile per capire il mio modello.
user2755,

oh sì, lo sei :)
mpiktas,

1
Qualcuno può spiegarmi la logica dietro la pendenza e intercettare? (per quanto riguarda il modello logistico)
Fernando

22

Volevo rispondere alla domanda in commento alla risposta accettata sopra da Fernando: qualcuno può spiegare la logica dietro la pendenza e intercettare?

L'ipotesi di regressione logistica assume la forma di:

hθ=g(z)

g(z)z è della forma:

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

y=1hθ0.5 che ha dato la funzione sigmoide è vero quando:

θ0+θ1x1+θ2x20

quanto sopra è il limite di decisione e può essere riorganizzato come:

x2θ0θ2+θ1θ2x1

y=mx+bmb


2
Buona spiegazione che accompagna la risposta sopra!
Augustin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.