contrasts in anova

statstar picture statstar · Nov 27, 2012 · Viewed 10.2k times · Source

I understand the contrasts from previous posts and I think I am doing the right thing but it is not giving me what I would expect.

x <- c(11.80856, 11.89269, 11.42944, 12.03155, 10.40744,
       12.48229, 12.1188, 11.76914, 0, 0,
       13.65773, 13.83269, 13.2401, 14.54421, 13.40312)
type <- factor(c(rep("g",5),rep("i",5),rep("t",5)))
type
 [1] g g g g g i i i i i t t t t t
Levels: g i t

When I run this:

> summary.lm(aov(x ~ type))

Call:
aov(formula = x ~ type)

Residuals:
    Min      1Q  Median      3Q     Max 
-7.2740 -0.4140  0.0971  0.6631  5.2082 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   11.514      1.729   6.659 2.33e-05 ***
typei         -4.240      2.445  -1.734    0.109    
typet          2.222      2.445   0.909    0.381    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 3.866 on 12 degrees of freedom
Multiple R-squared: 0.3753,     Adjusted R-squared: 0.2712 
F-statistic: 3.605 on 2 and 12 DF,  p-value: 0.05943 

Here my reference is my type "g", so my typei is the difference between type "g" and type "i", and my typet is the difference between type "g" and type "t".

I wanted to see two more contrasts here, the difference between typei+typeg and type "t" and difference between type "i" and type "t"

so the contrasts

> contrasts(type) <- cbind( c(-1,-1,2),c(0,-1,1))
> summary.lm(aov(x~type))

Call:
aov(formula = x ~ type)

Residuals:
    Min      1Q  Median      3Q     Max 
-7.2740 -0.4140  0.0971  0.6631  5.2082 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  10.8412     0.9983  10.860 1.46e-07 ***
type1        -0.6728     1.4118  -0.477    0.642    
type2         4.2399     2.4453   1.734    0.109    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 3.866 on 12 degrees of freedom
Multiple R-squared: 0.3753,     Adjusted R-squared: 0.2712 
F-statistic: 3.605 on 2 and 12 DF,  p-value: 0.05943 

When I try to do the second contrast by changing my reference I get different results. I am not understanding what is wrong with my contrast.

Answer

liuminzhao picture liuminzhao · Nov 27, 2012

Refence: http://www.ats.ucla.edu/stat/r/library/contrast_coding.htm

mat <- cbind(rep(1/3, 3), "g+i vs t"=c(-1/2, -1/2, 1),"i vs t"=c(0, -1, 1))
mymat <- solve(t(mat))
my.contrast <- mymat[,2:3]
contrasts(type) <- my.contrast
summary.lm(aov(x ~ type))

my.contrast
>      g+i vs t i vs t
[1,]  -1.3333      1
[2,]   0.6667     -1
[3,]   0.6667      0
> contrasts(type) <- my.contrast
> summary.lm(aov(x ~ type))

Call:
aov(formula = x ~ type)

Residuals:
   Min     1Q Median     3Q    Max 
-7.274 -0.414  0.097  0.663  5.208 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)    10.841      0.998   10.86  1.5e-07 ***
typeg+i vs t    4.342      2.118    2.05    0.063 .  
typei vs t      6.462      2.445    2.64    0.021 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Residual standard error: 3.87 on 12 degrees of freedom
Multiple R-squared: 0.375,  Adjusted R-squared: 0.271 
F-statistic:  3.6 on 2 and 12 DF,  p-value: 0.0594