## 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)