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"))
¿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
r
logistic
generalized-linear-model
ATMathew
fuente
fuente
Respuestas:
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:x x
Estimate
La probabilidad, que desea trazar, está relacionada con las probabilidades de registro por
R llama a esto la función "logit inversa",
inv.logit
.Poner estos juntos da la ecuación
Un comando R para trazarlo sería
En general, debe extraer estos coeficientes con el
coefficients
comando en lugar de transcribirlos (como hice aquí, porque no tengo acceso a sus datos).fuente
Hmisc::latex
función facilita la impresión de lo anterior como , por ejemplo, puede producir esta salida (usando el código de muestra aquí ).latex(fit.1)