I am playing with the a 1-way anova with and without the "-1" option.

I have a simple cooked up example below but it behaves the same on a more 
complex real example.

 From what I can tell:
1) the estimated means of the different levels are correctly estimated 
either way (although reported as means with the -1 and as contrasts without 
the -1 as expected)
2) the residuals are identical (in this contrived example they differ 
slightly due to numeric instability but in a more real-world example they 
truly are identical)
3) BUT the r2/F/p-value are different (in my real-world example they are 
drastically different)

How can a model that gets the same parameter estimates on the same data 
leading to the same residuals get different r2/F/p-value?

I suspect it depends on the difference in the model.matrix (see below) but 
this just confused me how it got the same parameter estimates without 
really clearing up why the r2's are different.

Any help on this is greatly appreciated!

 > x<-as.factor(c(1,1,1,2,2,2))
 > y<-c(1.1,1.0,0.9,2.0,2.1,1.9)
 > summary(lm(y~x))

Call:
lm(formula = y ~ x)

Residuals:
          1          2          3          4          5          6
  1.000e-01 -4.980e-16 -1.000e-01  8.538e-18  1.000e-01 -1.000e-01

Coefficients:
             Estimate Std. Error t value Pr(>|t|)
(Intercept)  1.00000    0.05774   17.32 6.52e-05 ***
x2           1.00000    0.08165   12.25 0.000255 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.1 on 4 degrees of freedom
Multiple R-Squared: 0.974,      Adjusted R-squared: 0.9675
F-statistic:   150 on 1 and 4 DF,  p-value: 0.0002552

 > summary(lm(y~x-1))

Call:
lm(formula = y ~ x - 1)

Residuals:
          1          2          3          4          5          6
  1.000e-01  5.027e-16 -1.000e-01  4.405e-20  1.000e-01 -1.000e-01

Coefficients:
    Estimate Std. Error t value Pr(>|t|)
x1  1.00000    0.05774   17.32 6.52e-05 ***
x2  2.00000    0.05774   34.64 4.14e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.1 on 4 degrees of freedom
Multiple R-Squared: 0.9973,     Adjusted R-squared: 0.996
F-statistic:   750 on 2 and 4 DF,  p-value: 7.073e-06

 > m2nc=lm(y~x-1)
 > m2wc=lm(y~x)
 > resid(m2nc)
             1             2             3             4             5 
        6
  1.000000e-01  5.026734e-16 -1.000000e-01  4.404571e-20  1.000000e-01 
-1.000000e-01
 > resid(m2wc)
             1             2             3             4             5 
        6
  1.000000e-01 -4.980012e-16 -1.000000e-01  8.538092e-18  1.000000e-01 
-1.000000e-01
 > model.matrix(m2nc)
   x1 x2
1  1  0
2  1  0
3  1  0
4  0  1
5  0  1
6  0  1
attr(,"assign")
[1] 1 1
attr(,"contrasts")
attr(,"contrasts")$x
[1] "contr.treatment"

 > model.matrix(m2wc)
   (Intercept) x2
1           1  0
2           1  0
3           1  0
4           1  1
5           1  1
6           1  1
attr(,"assign")
[1] 0 1
attr(,"contrasts")
attr(,"contrasts")$x
[1] "contr.treatment"




Brian McGill
Dept of Biology
McGill University
Stewart Biology Bldg
1205 ave Docteur Penfield
Montreal, QC H3A 1B1
CANADA

(514) 398-6417

http://www.brianmcgill.org
mail@brianmcgill.org

	[[alternative HTML version deleted]]

