Encuentre la ecuación a partir del resultado del modelo lineal generalizado

9

Digamos que genero la probabilidad de un resultado basado en cierto factor y trazo la curva de ese resultado. ¿Hay alguna forma de extraer la ecuación para esa curva de R?

> mod = glm(winner~our_bid, data=mydat, family=binomial(link="logit"))
> summary(mod)

Call:
glm(formula = winner ~ our_bid, family = binomial(link = "logit"), 
    data = mydat)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-0.7443  -0.6083  -0.5329  -0.4702   2.3518  

Coefficients:
              Estimate Std. Error z value Pr(>|z|)    
(Intercept) -9.781e-01  2.836e-02  -34.49   <2e-16 ***
our_bid     -2.050e-03  7.576e-05  -27.07   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 42850  on 49971  degrees of freedom
Residual deviance: 42094  on 49970  degrees of freedom
AIC: 42098

Number of Fisher Scoring iterations: 4

> all.x <- expand.grid(winner=unique(winner), our_bid=unique(our_bid))
> all.x
> won = subset(all.x, winner == 1)
> y.hat.new <- predict(mod, newdata=won, type="response")
> options(max.print=5000000)
> y.hat.new
> plot(our_bid<-000:1000, predict(mod, newdata=data.frame(our_bid<-c(000:1000)),
       type="response"))

ingrese la descripción de la imagen aquí

¿Cómo puedo pasar de esta curva de probabilidad a una ecuación en R? Esperaba algo como:

Probability = -0.08*bid3 + 0.0364*bid2 - 0.0281*bid + 4E-14
ATMathew
fuente
2
A diferencia del ejemplo en su código, que tiene una variable independiente (oferta) y, por lo tanto, se traza como una curva en un plano (oferta, probabilidad), el ejemplo en su edición al final no se trazaría como una curva: sería un tres hiperesuperficie dimensional trazada en cuatro dimensiones (oferta, oferta2, oferta3, probabilidad).
whuber

Respuestas:

15

Este modelo lineal generalizado supone que el resultado asociado con un valor independiente de tiene una distribución binomial cuyas probabilidades log ("logit") varían linealmente con . La salida proporciona los coeficientes de esa relación lineal; a saber, la intersección se estima como -0.9781 y la pendiente ("our_bid") como -0.002050. Puedes verlos en la columna:xxEstimate

              Estimate Std. Error z value Pr(>|z|)    
(Intercept) -9.781e-01  2.836e-02  -34.49   <2e-16 ***
our_bid     -2.050e-03  7.576e-05  -27.07   <2e-16 ***

La probabilidad, que desea trazar, está relacionada con las probabilidades de registro por

probability=11+exp(log odds).

R llama a esto la función "logit inversa", inv.logit.

Poner estos juntos da la ecuación

probability=11+exp([0.97810.00205x]).

Un comando R para trazarlo sería

plot(inv.logit(-0.9781 - 0.00205*(0:1000)))

Trazar salida

En general, debe extraer estos coeficientes con el coefficientscomando en lugar de transcribirlos (como hice aquí, porque no tengo acceso a sus datos).

whuber
fuente
3
(+1) Cabe destacar que la Hmisc::latexfunción facilita la impresión de lo anterior como , por ejemplo, puede producir esta salida (usando el código de muestra aquí ). LATEXlatex(fit.1)
chl