## Objetivos:
## Exemplificar, através do R, as análises e determinações numéricas 
## referentes a análise de variância sob DIC e testes de comparação 
## de médias usando pacotes alternativos
## Pacotes necessários:
## gplots    (CRAN)
## multcomp  (CRAN)
## TukeyC    (CRAN)
## agricolae (CRAN)
# install.packages(c('gplots',
#                    'multcomp',
#                    'TukeyC',
#                    'agricolae'))  # 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
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)
#cv(av)
##===============================
## Teste de comparação de médias
##===============================
##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
## Usando a função TukeyHSD do pacote stats
##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
tkh <- TukeyHSD(av, 
               'tra')
tkh
plot(tkh)
##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
## Usando o pacote multicomp
##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
id.tra <- with(dad,
               tapply(pro,
                      tra,
                      mean))
## Também pode ser como abaixo
# id.tra <- rep(6, 4);  names(id.tra) <- LETTERS[1:4]
library(multcomp)
## contrMat (multcomp): Gera matriz de comparações
mc <- contrMat(id.tra,
               type='Tukey')
mc
## glht (multcomp): Compara
tkm <- summary(glht(av,
                    linfct=mcp(tra=mc)))
tkm
plot(tkm)
##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
## Usando o pacote agricolae
##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
library(agricolae)
## HSD.test (agricolae)
with(dad,
     HSD.test(pro, tra,
              DFerror=df.residual(av),
              MSerror=deviance(av)/df.residual(av),
              alpha=0.05))
##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
## Usando o pacote TukeyC
##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
library(TukeyC)
## TukeyC (TukeyC)
tkc <- TukeyC(av)
summary(tkc)
summary(tkc, complete=FALSE)
plot(tkc)
## Informações adicionais
names(tkc)
tkc
tkc$Result
tkc$Diff_Prob
##====================================
## Alternativas e recursos adicionais
##====================================
## Recuperar algumas informações úteis contidas no objeto 'av'
(SQDtot <- anova(av)$Sum[1] + anova(av)$Sum[2])
(GLtot <- anova(av)$Df[1] + anova(av)$Df[2])
(SQDtra <- anova(av)$Sum[1])
(GLtra <- anova(av)$Df[1])
(SQDRes <- anova(av)$Sum[2])
(GLres <- anova(av)$Df[2])
 
## Cálculos alternativos de algumas medidas básicas
## Calcular médias dos tratamentos e armazenar na variável m
(m <- with(dad,
           tapply(pro,
                  tra,
                  mean)))
sort(m,
     d=TRUE)
## Calcular variâncias dos tratamentos e armazenar na variável vs
(vs <- with(dad,
            tapply(pro,
                   tra,
                   var)))
sort(vs,
     d=TRUE)
## Calcular a SQDtot em relação á média geral
(SQDtot <- with(dad,
                sum((pro - mean(pro))^2)))
## Calcular os graus de liberdade total
(GLtot <- length(dad$pro) - 1)
## Coeficiente de variação
QMres <- sum(resid(av)^2) / av$df.residual
cv <- 100 * sqrt(QMres) / mean(dad$pro)
round(cv, 2)