[R] logistic regression without intercept

Ross Boylan ross at biostat.ucsf.edu
Wed Aug 20 00:47:57 CEST 2003


Thanks to Thomas Lumley, Spencer Graves, and Steve Sullivan for their
advice on and off list to modify the formula with +0 (which I did; it
worked) or -1 at the end.

A couple of items of clarification:

, On Tue, 2003-08-19 at 15:32, Thomas Lumley wrote:
> On Tue, 19 Aug 2003, Ross Boylan wrote:
> 
> > I want to do a logistic regression without an intercept term.  This
> > option is absent from glm, though present in some of the inner functions
> > glm uses.  I gather glm is the standard way to do logistic regression in
> > R.
> >
> > Hoping it would be passed in, I said
> > > r <- glm(brain.cancer~epilepsy+other.cancer, c3,
> > >        family=binomial(link="logit"), intercept=FALSE)
> > which produced
> > Error in glm.control(...) : unused argument(s) (intercept ...)
> >
> > Is there an easy way to do this?  I suppose I could start hacking away
> > at glm so it would take the argument and pass it on, but is it absent
> > for a reason?
> 
> Yes. You specify no intercept  with the formula:
> r <- glm(brain.cancer~epilepsy+other.cancer+0, c3,
>         family=binomial(link="logit"), intercept=FALSE)
> or
> r <- glm(brain.cancer~epilepsy+other.cancer-1, c3,
>         family=binomial(link="logit"), intercept=FALSE)
> 
> The latter is S-PLUS compatible

Omit the intercept=FALSE in the above lines; it causes an error even
with the augmented model spec.
> 
> > Also, I noticed that S-Plus but not R has a glim routine that uses
> > maximum likelihood.  What would be the equivalent?
> 
> glm.
> 
I thought glm was a minimize the deviations approach, which is different
from maximize likelihood.

> 	-thomas
> 
> 
--




More information about the R-help mailing list