在anova中形成对比

时间:2012-11-27 18:35:25

标签: r statistics anova

我理解以前帖子的对比,我认为我做的是正确的,但它没有给我我期望的东西。

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

当我运行时:

> 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 

这里我的引用是我的类型“g”,所以我的typei是类型“g”和类型“i”之间的区别,而我的typet是类型“g”和输入“t”。

我想在这里看到另外两个对比,typei+typeg和类型“t”之间的差异以及类型“i”和类型“t”之间的差异

所以对比

> 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 

当我尝试通过更改我的参考来进行第二次对比时,我会得到不同的结果。我不明白我的对比有什么问题。

1 个答案:

答案 0 :(得分:8)

参考: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