Finden Sie die Gleichung aus der verallgemeinerten linearen Modellausgabe

9

Angenommen, ich generiere die Wahrscheinlichkeit eines Ergebnisses basierend auf einem bestimmten Faktor und zeichne die Kurve dieses Ergebnisses. Gibt es eine Möglichkeit, die Gleichung für diese Kurve aus R zu extrahieren?

> 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"))

Geben Sie hier die Bildbeschreibung ein

Wie kann ich von dieser Wahrscheinlichkeitskurve zu einer Gleichung in R gelangen? Ich hatte auf so etwas gehofft wie:

Probability = -0.08*bid3 + 0.0364*bid2 - 0.0281*bid + 4E-14
ATMathew
quelle
2
Im Gegensatz zu dem Beispiel in Ihrem Code, das eine unabhängige Variable (Gebot) enthält und daher als Kurve in einer Ebene (Gebot, Wahrscheinlichkeit) dargestellt wird, würde das Beispiel in Ihrer Bearbeitung am Ende nicht als Kurve dargestellt: Es wäre eine Drei -dimensionale Hyperfläche in vier Dimensionen (Gebot, Gebot2, Gebot3, Wahrscheinlichkeit).
whuber

Antworten:

15

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 ***

Die Wahrscheinlichkeit, die Sie zeichnen möchten, hängt mit den Log-Quoten von zusammen

probability=11+exp(log odds).

R nennt dies die Funktion "inverse logit" inv.logit.

Das Zusammenfügen ergibt die Gleichung

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

Ein R-Befehl zum Plotten wäre

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

Plotausgabe

Im Allgemeinen sollten Sie diese Koeffizienten mit dem coefficientsBefehl extrahieren, anstatt sie zu transkribieren (wie hier, da ich keinen Zugriff auf Ihre Daten habe).

whuber
quelle
3
Hmisc::latexLATEXlatex(fit.1)