[R] glm(family=binomial(link=logit))

Prof Brian Ripley ripley at stats.ox.ac.uk
Fri Jul 15 17:22:17 CEST 2005


On Fri, 15 Jul 2005, Robin Hankin wrote:

> I am trying to make glm() work to analyze a toy logit system.
>
> I have a dataframe with x and y independent variables.  I have
>
> L=1+x-y          (ie coefficients 1,1,-1)
>
> then if I have a logit relation with L=log(p/(1-p)),
> p=1/(1+exp(L)).

Not quite, see below.

> If I interpret "p" as the probability of  success in a Bernouilli
> trial, and I can observe the result (0 for "no", 1 for "yes")
> how do I retrieve the coefficients c(1,1,-1)
> from the data?
>
> n <- 300
> des <- data.frame(x=(1:n)/n,y=sample(n)/n)   # experimental design
> des <- cbind(des,L=1+des$x-des$y)            # L=1+x-y
> des <- cbind(des,p=1/(1+exp(des$L)))         # p=1/(1+e^L)

A logit would be p = e^L/(1+e^L), so your signs for L are reversed.

> des <- cbind(des,obs=rbinom(n,1,des$p))      # observation: prob of
> success = p.
>
>
> My attempt is:
>
> glm(obs~x+y,data=des,family=binomial(link="logit"))
>
> But it does not retrieve the correct coefficients of c(1,1,-1) ;
> I would expect a reasonably close answer with so much data.

You actually have so little data.

> What is the correct glm() call to perform my logit analysis?

The call is correct, the expectation is not.  A single bernoulli 
observation provides far less information than you seem to suppose.

I got

Coefficients:
             Estimate Std. Error z value Pr(>|z|)
(Intercept)  -1.4747     0.3670  -4.019 5.85e-05 ***
x            -0.5549     0.4672  -1.188  0.23494
y             1.2963     0.4731   2.740  0.00614 **

and note how large the standard errors are.  With 10000 examples you will 
get closer.  Having fixed your sign change, I got

Coefficients:
             Estimate Std. Error z value Pr(>|z|)
(Intercept)  0.98711    0.06024   16.39   <2e-16 ***
x            1.00896    0.08052   12.53   <2e-16 ***
y           -0.87798    0.08031  -10.93   <2e-16 ***


-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list