Aplicação de contrastes

## Objetivos:
## Exemplificar, através do R, as análises e determinações numéricas 
## referentes a análise de variância sob DIC e aplicação de ##contrastes.
===============================================================================

## Pacotes necessários:
## gplots    (CRAN)
## gmodels   (CRAN)

# install.packages(c('gplots',
#                    'gmodels'))  # Instala todos os pacotes necessários do CRAN.

##===============================
## Dados
##===============================
tra <- gl(4,
          6,
          labels=LETTERS[1:4])

r   <- rep(1:6,
           4)

pro <- c(58, 49, 51, 56, 50, 48,
         60, 55, 66, 61, 54, 61,
         59, 47, 44, 49, 62, 60,
         45, 33, 34, 48, 42, 44)

dad <- data.frame(tra,
                  r,
                  pro)

rm(tra, r, pro)   # Removendo objetos não mais necessários


##===============================
## Análise de variância
##===============================
is.data.frame(dad)
is.factor(dad$tra)  # Necessário ser fator para fazer ANOVA
is.numeric(dad$pro) # Necessário ser numerico para fazer ANOVA

## Carrega pacote necessário
library(gplots)

## plotmeans (gplots)
plotmeans(pro ~ tra,
          data=dad,
          mean.labels=FALSE,
          digits=3,
          col='blue',
          connect=FALSE,
          ylab='Produção',
          xlab='Tratamentos')

av <- aov(pro ~ tra,
          data=dad)

summary(av)


##===============================
## Contrastes
##===============================
##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
## Contrastes ortogonais
##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
                                   #A   B   C   D
cmat <- rbind('(A,D) vs (B,C)' = c( 1, -1, -1,  1),   # Define a matriz dos contrastes ortogonais
              'A vs D'         = c( 1,  0,  0, -1),
              'B vs C'         = c( 0,  1, -1,  0))

## Carrega pacote necessário
library(gmodels)

av1 <- aov(pro ~ tra,
           data=dad,
           contrasts=list(tra=make.contrasts(cmat)))  # make.contrasts (gmodels): gera matriz dos contrastes

summary(av1,                                          # ANOVA com a SQDtra e GLtra desdobrados em contrastes ortogonais
        split=list(tra=list('(A,D) vs. (B,C)'=1,
                            'A vs. D   '     =2,
                            'B vs. C'        =3)))

##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
## Cálculos alternativos
##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
(tra <- gl(4,
           6,
           labels=LETTERS[1:4]))

               #A   B   C   D
fit.contrast(av,
             tra,
             c( 1, -1, -1,  1))   # fit.contrast (gmodels): testa constraste(s)

fit.contrast(av,
             tra,
             c( 1,  0,  0, -1))

fit.contrast(av,
             tra,
             c( 0,  1, -1,  0))

## Grupos de contrastes
fit.contrast(av,
             tra,
             rbind('(A,D) vs (B,C)' = c( 1, -1, -1,  1),
                   'A vs D'         = c( 1,  0,  0, -1),
                   'B vs C'         = c( 0,  1, -1,  0)))

fit.contrast(av,
             tra,
             cmat)