6

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.

ABCD
  • 7,914
  • 9
  • 54
  • 90
statstar
  • 73
  • 1
  • 1
  • 5

1 Answers1

8

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 
liuminzhao
  • 2,385
  • 17
  • 28
  • Thanks @liuminzhao. The link is not longer available. I found that many people present this topic differently. Some with and some without the step of solving the matrix. Can you maybe recommend a good resource where this is explained since the link is not longer working. – Jaynes01 Jan 03 '18 at 10:31
  • 1
    @Jaynes01 I found another [link](https://rstudio-pubs-static.s3.amazonaws.com/65059_586f394d8eb84f84b1baaf56ffb6b47f.html). Check section *DIY Contrasts*. Hope that helps. In short, it depends on whether the contrast are orthogonal or not. Doing the inverse is safer for the contrast function in R. – liuminzhao Jan 04 '18 at 03:41