Quando se trabalha com 2 tratamentos, os passos para seguir são: Teste de normalidade - shapiro.test, seguido de var.test, que se o p-valor der menor que 0,05 realiza testes não paramétricos (Mann-Whitney e Wilcoxon). Caso o p-vallor seja maior que 0,05, realiza-se o t.test —-> var.equal = F.
Anova com 1 fator
Pergunta a ser resposndida: Há efeito da espécie no crescimento micelial?
Cria um novo modelo para atribuir a função aov() contendo os argumentos (tcm em função de espécie). Depois disso, resume o novo modelo criado com a função summary.
aov1 <-aov(tcm ~ especie, data = micelial)summary(aov1)
Df Sum Sq Mean Sq F value Pr(>F)
especie 4 0.4692 0.11729 1.983 0.117
Residuals 37 2.1885 0.05915
Conclusão: Nesse conjunto de dados, não há diferença na media micelial (não há efeito significativo da espécie sobre o cresc. micelial).
Testando as premissas
Depois de fazer a anova, testa-se as premissas. É mais importante os dados serem homogeneos do que normais. Testando as premissas da anova - de normalidade e homocedasticidade do modelo: Para testar as premissas, é necessário instalar e carregar o pacote performance e o pacote DHARMa. O pacote performance permite checar as premissas (check_), já o pacote DHARMA ((Distributed Hierarchical Accumulation of Residuals for Generalized Linear Models in R) é para visualizar os dados pelo diagnóstico do resíduo (O pacote DHARMa permite faz uma comparação dos resíduos simulados, que são gerados pelo pacote, com os resíduos observados) e ver graficamente quando a distribuição dos dados não é normal e/ou quando há variação heterocedástica.
Rodando o modelo de anova: como os dados, aparentemente - pelo visual do gráfico - apresentaram-se não paramétricos, roda-se a anova e testa-se as premissas para confirmação.
aov2 <-aov(count ~ spray, data = insects)summary(aov2)
Df Sum Sq Mean Sq F value Pr(>F)
spray 5 2669 533.8 34.7 <2e-16 ***
Residuals 66 1015 15.4
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
check_normality(aov2)
Warning: Non-normality of residuals detected (p = 0.022).
Interpretação: dados não são normais e homogeneos.
Alternativas para dados não paramétricos:
Quando se tem dados não paramétricos, tem-se 3 alternativas - transformar os dados (raiz quadrada, log, etc); usar testes não paramétricos (Kruskal) ou usar modelos lineares generalizados (melhor opção).
Transformar os dados para normalizar: Usa-se a raiz quadrada para tentar noprmalizar e tornar os dados normais e homogenos. Pode-se também tentar o log da variável resposta + 0.5.
aov2 <-aov(sqrt(count) ~ spray, data = insects)summary(aov2)
Df Sum Sq Mean Sq F value Pr(>F)
spray 5 88.44 17.688 44.8 <2e-16 ***
Residuals 66 26.06 0.395
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
check_normality(aov2)
OK: residuals appear as normally distributed (p = 0.681).
check_heteroscedasticity(aov2)
OK: Error variance appears to be homoscedastic (p = 0.854).
Se não normalizar e os dados ainda forem heterogenos, usa-se testes não paramétricos. Tem 2 opções de teste Kruskal. Para usar essa opção, é necessário baixar e carregar o pacote agricolae.
kruskal.test(count ~ spray, data = insects)
Kruskal-Wallis rank sum test
data: count by spray
Kruskal-Wallis chi-squared = 54.691, df = 5, p-value = 1.511e-10
library(agricolae)kruskal(insects$count, insects$spray, console =TRUE) #separa por grupos.
Study: insects$count ~ insects$spray
Kruskal-Wallis test's
Ties or no Ties
Critical Value: 54.69134
Degrees of freedom: 5
Pvalue Chisq : 1.510845e-10
insects$spray, means of the ranks
insects.count r
A 52.16667 12
B 54.83333 12
C 11.45833 12
D 25.58333 12
E 19.33333 12
F 55.62500 12
Post Hoc Analysis
t-Student: 1.996564
Alpha : 0.05
Minimum Significant Difference: 8.462804
Treatments with the same letter are not significantly different.
insects$count groups
F 55.62500 a
B 54.83333 a
A 52.16667 a
D 25.58333 b
E 19.33333 bc
C 11.45833 c
Pacote emmeans
O pacote emmeans (“estimated marginal means”, ou médias marginais estimadas) é usado para realizar testes de comparação de médias entre grupos, ajustando para outros fatores importantes que podem influenciar as médias. O pacote é particularmente útil em modelos lineares generalizados (GLM).
Função emmeans - tirar a média da variável inseticida: Para dar o valor original da média e não o valor transformado, usa-se a função type = response. A função pwpm gera uma tabela de comparação das médias e cld é uma função que serve para gerar os números que diferenciam os grupos de médias.
aov2 <-aov(count ~ spray, data = insects)summary(aov2)
Df Sum Sq Mean Sq F value Pr(>F)
spray 5 2669 533.8 34.7 <2e-16 ***
Residuals 66 1015 15.4
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
check_normality(aov2)
Warning: Non-normality of residuals detected (p = 0.022).
library(emmeans)aov2 <- means <-emmeans(aov2, ~ spray,type ="response")
GLM A terceira opção é a geração de modelos lineares generalizados. Para publicação de artigos, essa é a opção mais aconselhável, é mais elegante do que transformar os dados. Para visualizar, pode usar o pacote Dharma e puxar um plot.