[R-SIG-Mac]bug in lm()?
Thomas Lumley
tlumley@u.washington.edu
Fri, 1 Mar 2002 10:19:11 -0800 (PST)
On Fri, 1 Mar 2002, Christof Bigler wrote:
> After having used lm(), I encountered some odd results in the Darwin
> version (Mac G4, OS X Version 10.1.3). Then I tried out this (in the
> Darwin and the Carbon version):
>
> > > dummy1 <- c(1:10)
> > > dummy2 <- c(1:10)
>
> Darwin version (1.4.0):
>
> a)
> > > lm(dummy1~dummy2)
> >
> > Call:
> > lm(formula = dummy1 ~ dummy2)
> >
> > Coefficients:
> > (Intercept) dummy2
> > 2.442e-15 1.000e+00
This is correct (2.442e-15 is zero by any reasonable definition)
> b)
> > > lm(c(1:10)~c(1:10))
> >
> > Call:
> > lm(formula = c(1:10) ~ c(1:10))
> >
> > Coefficients:
> > (Intercept)
> > 22
The problem here is that you have the same expression on both sides of the
formula, so R will drop it from the RHS. You would see the same thing
with
lm(dummy1~dummy1)
Getting 22 is a bug, but not one that you should normally encounter
> Carbon version (1.3.1, yes I know!):
>
> c)
> > > lm(dummy1 ~ dummy2)
> >
> > Call:
> > lm(formula = dummy1 ~ dummy2)
> >
> > Coefficients:
> > (Intercept) dummy2
> > 0 1
Same correct answer as a
> d)
> > > lm(c(1:10)~c(1:10))
> >
> > Call:
> > lm(formula = c(1:10) ~ c(1:10))
> >
> > Coefficients:
> > (Intercept)
> > 5.5
Correct answer after dropping the response from the RHS
> Are there any explanations, why one can get 4 different results
> (although just one is correct)?
In fact there are three different results and two of them are correct.
I can't reproduce (b) on any other system I have access to, but it does
seem to be a bug. Anyone else with 1.4.0 on Darwin find this? Does it
still happen with
lm(c(1:10)~1)
which would be much more serious?
-thomas
Thomas Lumley Asst. Professor, Biostatistics
tlumley@u.washington.edu University of Washington, Seattle