Quando eu quero comparar 3 medias entre si

Quando é feita a análise de variância de um experimento com apenas dois tratamentos, podemos visualizar apenas pela média qual o melhor tratamento. Porém, quando há mais de dois tratamentos, fazendo apenas o teste de “f” (teste que mostra se existe diferença entre as médias dos tratamentos) não podemos indicar qual o melhor tratamento. Neste caso, é necessário aplicar um teste de comparação de médias dos tratamentos, daí podendo concluir qual o melhor tratamento.

Então os testes de comparação de média servem como um complemento para o estudo da análise de variância. Há vários testes de comparação de médias, entre os quais podemos citar: teste de Tukey, teste de Duncan, teste de Scheffé, teste de Dunnet e teste de Bonferroni.

Teste de Tukey
-É um dos testes de comparação de média mais utilizados, por ser bastante rigoroso e fácil aplicação;

-Não permite comparar grupos de tratamentos entre si;

-É utilizado para testar toda e qualquer diferença entre duas médias de tratamento;

-É aplicado quando o teste “F” para tratamentos da ANAVA (análise de variância) for significativo.

* O teste de Tukey tem como base a DMS (diferença mínima significativa), representada no geral por ∆ e calculada da seguinte forma:

Quando eu quero comparar 3 medias entre si

Onde:
q∆ = é o valor da amplitude estudentizada, cujo o valor é encontrado em tabelas, em função do número de tratamentos e do número de grau de liberdade do resíduo, ao nível α de probabilidade (em geral 5%);

s = é a estimativa do desvio padrão residual (erro experimental);

r = número de repetições.

Em estudos de mercado, quer seja no desenvolvimento dum produto, quer seja  na escolha dum público-alvo duma campanha de marketing, pode interessar-nos saber se existem diferenças entre homens e mulheres na aquisição do nosso produto. Para tal, teremos de comparar a aquisição do produto por parte de homens e de mulheres.

Neste caso, temos uma variável que podemos chamar “Aquisição”  e que nos diz qual o valor despendido, no nosso produto, pelo inquirido. Na amostra teremos respostas de homens e mulheres. O que precisamos fazer, de seguida, é comparar o valor médio amostral da variável “Aquisição”, quer no grupo de homens, quer no grupo de mulheres.

A “Aquisição” é uma variável de razão: compreende valores semanais gastos no nosso produto que oscilam entre zero euros e 10 euros. Neste caso utiliza-se o teste t para duas amostras independentes.  Os comandos são os que se seguem na figura abaixo.

Quando eu quero comparar 3 medias entre si

Abre-se, de seguida, uma janela exemplificada na imagem em baixo. No campo Test Variable coloca-se a variável em que pretendemos analisar as diferenças e no campo Group Variable deve colocar-se a variável que identifica os grupos em teste. Neste caso o género é a variável grupo que pretendemos analisar. Devendo ser definidos os grupos em teste, carrega-se no botão Define Groups, que abre uma nova janela onde se define o grupo 1 com 0 (masculino)  e o grupo 2 com 1  (feminino), de acordo com a codificação anterior da variável na base de dados.

Quando eu quero comparar 3 medias entre si

O output do teste é apresentado na imagem abaixo. Na primeira tabela são apresentados os casos do grupo masculino e do grupo feminino, o valor médio despendido no nosso produto  nos grupos masculino e feminino e os respectivos valores de desvio padrão.

Na segunda tabela, são apresentados os valores do teste de Levene e do teste t. O teste de Levene permite-nos averiguar da homogeneidade das variâncias. Neste caso, conclui-se que as variâncias são diferentes nos dois grupos, uma vez que a significância associada ao teste é inferior a 0,05. Uma vez que não se assume a homogeneidade das variâncias, optamos por utilizar os valores do teste t de Equal variances not assumed. Os resultados indicam que não existem diferenças entre homens e mulheres no valor semanal despendido no nosso produto. O teste não mostrou diferenças estatisticamente significativas para um intervalo de 95% de confiança (a significância associada ao teste t foi superior a 0,05).

Quando eu quero comparar 3 medias entre si

Nota: para uma escolha mais criteriosa do teste a aplicar deve proceder-se à análise da distribuição das variáveis em estudo.

Se você faz pesquisa científica então com certeza já precisou comparar médias para analisar os resultados obtidos. O problema é que existem muitos testes estatísticos possíveis e cada um deles é aplicado para uma situação diferente.

Então, como saber qual o melhor para os dados da sua pesquisa? Para responder essa pergunta é preciso saber qual o tipo de dado que você tem em mãos.

As variáveis da sua pesquisa podem ser: quantitativas ou qualitativas, apresentar ou não distribuição normal, ser pareadas ou não e ter mais ou menos de dois níveis. Essas características serão as responsáveis pela escolha dos testes.

Continue lendo para saber mais sobre cada um dos testes e a sua aplicabilidade.

Quando eu quero comparar 3 medias entre si

Quando eu quero comparar 3 medias entre si

Quantitativa não apresenta distribuição normal

Teste de Wilcoxon/ Mann-Whitney

Este é um teste não paramétrico baseado nos postos dos valores obtidos combinando 2 amostras, sendo que a utilização dele é ideal para a comparação de 2 amostras não pareadas. Exemplo:

GrupoA1 <- c(1, 2, 3, 2, 3, 4, 5, 4, 3, 2, 2, 2, 3, 2, 3, 2) GrupoA2 <- c(3, 4, 4, 4, 5, 5, 3, 3, 2, 3, 3, 4, 2, 4) MedidasA <- c(GrupoA1, GrupoA2) MedidasA %>% shapiro.test()# Não segue distribuição normal ## ## Shapiro-Wilk normality test ## ## data: . ## W = 0.90592, p-value = 0.01176 GruposA <- c(rep("G1", length(GrupoA1)), rep("G2", length(GrupoA2))) %>% as.factor() wilcox.test(MedidasA ~ GruposA, exact = FALSE)# exact: quando não tem empate nos postos ## ## Wilcoxon rank sum test with continuity correction ## ## data: MedidasA by GruposA ## W = 61.5, p-value = 0.03053 ## alternative hypothesis: true location shift is not equal to 0 whitney.abg(MedidasA, GruposA) ## N Média E.P. 1º Q. 2º Q. 3º Q. Valor-p ## G1 16 2.6875 0.2536196 2 2.5 3 0.03052584 ## G2 14 3.5000 0.2513699 3 3.5 4 0.03052584

Teste de Kruskall-Wallis

O teste de Kruskal-Wallis é uma extensão do de Wilcoxon/Mann-Whitney. É um teste não paramétrico utilizado para comparar 3 ou mais amostras não pareadas. Ele é usado para testar a hipótese nula de que todas as populações possuem médias iguais contra a hipótese alternativa de que ao menos duas das populações possuem médias diferentes quanto à uma variável quantitativa. Exemplo:

GrupoB1 <- c(1, 1, 3, 2, 2, 4, 4, 4, 2, 2, 3, 2, 1, 2, 3, 2) GrupoB2 <- c(4, 5, 4, 4, 5, 5, 3, 3, 2, 5, 3, 4) GrupoB3 <- c(5, 4, 4, 4, 3, 5, 4, 4, 5, 5, 3, 3, 2, 3, 3, 4, 2, 4) MedidasB <- c(GrupoB1, GrupoB2, GrupoB3) MedidasB %>% shapiro.test()# Não segue distribuição normal ## ## Shapiro-Wilk normality test ## ## data: . ## W = 0.90793, p-value = 0.001482 GruposB <- c(rep("G1", length(GrupoB1)), rep("G2", length(GrupoB2)), rep("G3", length(GrupoB3))) %>% as.factor() kruskal.test(MedidasB ~ GruposB) ## ## Kruskal-Wallis rank sum test ## ## data: MedidasB by GruposB ## Kruskal-Wallis chi-squared = 14.47, df = 2, p-value = 0.0007208 kruskal.abg(MedidasB, GruposB)$tabela ## N Média E.P. 1º Q. 2º Q. 3º Q. Valor-p ## G1 16 2.375000 0.2561738 2 2 3 0.0007207691 ## G2 12 3.916667 0.2875796 3 4 5 0.0007207691 ## G3 18 3.722222 0.2258688 3 4 4 0.0007207691

Quando o teste de Kruskall-Wallis verifica diferença significativa, utiliza-se o de Nemenyi, que é um post-hoc, para a verificação de diferenças par-a-par (comparações múltiplas). Exemplo:

if(!require(PMCMR)){ install.packages("PMCMR"); require(PMCMR) } posthoc.kruskal.nemenyi.test(MedidasB ~ GruposB, dist = "Chisq")# Método para determinar o valor-p (defaut tukey) ## ## Pairwise comparisons using Nemenyi-test with Chi-squared ## approximation for independent samples ## ## data: MedidasB by GruposB ## ## G1 G2 ## G2 0.0039 - ## G3 0.0059 0.9018 ## ## P value adjustment method: none kruskal.abg(MedidasB, GruposB)$C.Multiplas ## G1 G2 ## G2 0.003937787 NA ## G3 0.005871800 0.9018024

Teste de Wilcoxon pareado

O teste de Wilcoxon pareado é utilizado para comparar se as medidas de posição de 2 amostras são iguais no caso em que as amostras são dependentes (pareadas). Exemplo:

GrupoC1 <- c(2, 2, 1, 3, 1, 3, 2, 2, 3, 3, 3, 3, 2, 1, 1, 2, 4, 2) GrupoC2 <- c(3, 4, 3, 3, 2, 3, 3, 4, 3, 3, 3, 3, 3, 4, 2, 2, 4, 2) MedidasC <- c(GrupoC1, GrupoC2) MedidasC %>% shapiro.test()# Não segue distribuição normal ## ## Shapiro-Wilk normality test ## ## data: . ## W = 0.87325, p-value = 0.0006849 GruposC <- c(rep("G1", length(GrupoC1)), rep("G2", length(GrupoC2))) %>% as.factor() wilcox.test(MedidasC ~ GruposC, exact = FALSE, paired = TRUE) ## ## Wilcoxon signed rank test with continuity correction ## ## data: MedidasC by GruposC ## V = 0, p-value = 0.007745 ## alternative hypothesis: true location shift is not equal to 0 wilcox.abg(GrupoC1, GrupoC2) ## N_validos Média E.P 1ºQ 2ºQ 3ºQ Valor-P ## diferença 18 -0.7777778 0.2222222 -1 -0.5 0 0.007744715

Teste de Friedman

Esse é um teste não-paramétrico utilizado para comparar 3 ou mais amostras pareadas quanto à uma variável quantitativa. Exemplo:

GrupoD1 <- c(2, 2, 1, 3, 1, 3, 2, 2, 3, 3, 3, 3, 2, 1, 1, 2, 4, 2) GrupoD2 <- c(3, 4, 3, 3, 2, 3, 3, 4, 3, 3, 3, 3, 3, 4, 2, 2, 4, 2) GrupoD3 <- c(2, 5, 4, 4, 3, 4, 4, 5, 4, 4, 2, 4, 2, 5, 3, 3, 4, 2) MedidasD <- c(GrupoD1, GrupoD2, GrupoD3) MedidasD %>% shapiro.test()# Não segue distribuição normal ## ## Shapiro-Wilk normality test ## ## data: . ## W = 0.91304, p-value = 0.0008227 Matriz <- cbind(GrupoD1, GrupoD2, GrupoD3) Matriz %>% friedman.test() ## ## Friedman rank sum test ## ## data: . ## Friedman chi-squared = 16.836, df = 2, p-value = 0.0002208

Quando o teste de Friedman verifica diferença significativa, utiliza-se o de Nemenyi, que é um post-hoc, para a verificação de diferenças par-a-par (comparações múltiplas). Exemplo:

Matriz %>% posthoc.friedman.nemenyi.test()# Pacote PMCMR ## ## Pairwise comparisons using Nemenyi multiple comparison test ## with q approximation for unreplicated blocked data ## ## data: . ## ## GrupoD1 GrupoD2 ## GrupoD2 0.21810 - ## GrupoD3 0.00099 0.13394 ## ## P value adjustment method: none

Quantitativa apresenta distribuição normal

Teste t

A utilização do teste t é ideal para comparar 2 amostras quanto à uma variável quantitativa quando essa segue uma distribuição normal. Existem três casos para a sua utilização: amostras não pareadas com variâncias populacionais iguais, amostras não pareadas com variâncias populacionais diferentes, e amostras pareadas. Exemplo do primeiro caso:

set.seed(16) GrupoE1 <- rnorm(25, 3, 1) set.seed(16) GrupoE2 <- rnorm(21, 4, 1) MedidasE <- c(GrupoE1, GrupoE2) MedidasE %>% shapiro.test()# Segue distribuição normal ## ## Shapiro-Wilk normality test ## ## data: . ## W = 0.98049, p-value = 0.6261 GruposE <- c(rep("G1", length(GrupoE1)), rep("G2", length(GrupoE2))) %>% as.factor() if(!require(car)){ install.packages("car"); require(car) } leveneTest(MedidasE ~ GruposE)# Variâncias iguais ## Levene's Test for Homogeneity of Variance (center = median) ## Df F value Pr(>F) ## group 1 1e-04 0.9923 ## 44 t.test(GrupoE1, GrupoE2, var.equal = TRUE) ## ## Two Sample t-test ## ## data: GrupoE1 and GrupoE2 ## t = -3.3456, df = 44, p-value = 0.001687 ## alternative hypothesis: true difference in means is not equal to 0 ## 95 percent confidence interval: ## -1.6352090 -0.4057567 ## sample estimates: ## mean of x mean of y ## 3.134466 4.154949

Exemplo do segundo caso:

set.seed(16) GrupoF1 <- rnorm(25, 3, 1) set.seed(16) GrupoF2 <- rnorm(21, 4, 2) MedidasF <- c(GrupoF1, GrupoF2) MedidasF %>% shapiro.test()# Segue distribuição normal ## ## Shapiro-Wilk normality test ## ## data: . ## W = 0.98159, p-value = 0.6719 GruposF <- c(rep("G1", length(GrupoF1)), rep("G2", length(GrupoF2))) %>% as.factor() leveneTest(MedidasF ~ GruposF)# Variâncias diferentes ## Levene's Test for Homogeneity of Variance (center = median) ## Df F value Pr(>F) ## group 1 8.2799 0.006163 ** ## 44 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 t.test(GrupoE1, GrupoE2, var.equal = FALSE) ## ## Welch Two Sample t-test ## ## data: GrupoE1 and GrupoE2 ## t = -3.3383, df = 42.254, p-value = 0.001768 ## alternative hypothesis: true difference in means is not equal to 0 ## 95 percent confidence interval: ## -1.6372852 -0.4036805 ## sample estimates: ## mean of x mean of y ## 3.134466 4.154949

Exemplo do terceiro caso:

set.seed(16) GrupoH1 <- rnorm(25, 3, 2) set.seed(16) GrupoH2 <- rnorm(25, 4, 1) MedidasH <- c(GrupoH1, GrupoH2) MedidasH %>% shapiro.test()# Segue distribuição normal ## ## Shapiro-Wilk normality test ## ## data: . ## W = 0.96379, p-value = 0.1282 t.test(GrupoH1, GrupoH2, paired = TRUE) ## ## Paired t-test ## ## data: GrupoH1 and GrupoH2 ## t = -4.248, df = 24, p-value = 0.0002811 ## alternative hypothesis: true difference in means is not equal to 0 ## 95 percent confidence interval: ## -1.2860539 -0.4450143 ## sample estimates: ## mean of the differences ## -0.8655341

ANOVA

A análise de variância (ANOVA) pode determinar se existe diferença significativa entre três ou mais grupos quanto à uma variável quantitativa que siga distribuição normal. A ANOVA usa testes F para testar estatisticamente a igualdade entre médias.

set.seed(16) GrupoG1 <- rnorm(26, 3, 1) set.seed(16) GrupoG2 <- rnorm(22, 5, 2) set.seed(16) GrupoG3 <- rnorm(19, 4, 1) MedidasG <- c(GrupoG1, GrupoG2, GrupoG3) MedidasG %>% shapiro.test()# Segue distribuição normal ## ## Shapiro-Wilk normality test ## ## data: . ## W = 0.96997, p-value = 0.1046 GruposG <- c(rep("G1", length(GrupoG1)), rep("G2", length(GrupoG2)), rep("G3", length(GrupoG3))) %>% as.factor() model <- lm(MedidasG ~ GruposG) if(!require(stats)){ install.packages("stats"); require(stats) } model %>% aov() %>% summary() ## Df Sum Sq Mean Sq F value Pr(>F) ## GruposG 2 51.56 25.781 12.46 2.69e-05 *** ## Residuals 64 132.44 2.069 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Quando se verifica diferença significativa entre os grupos na ANOVA, utiliza-se o teste de Tukey, que é um post-hoc, para a verificação de diferenças par-a-par (comparações múltiplas). Exemplo:

model %>% aov() %>% TukeyHSD() ## Tukey multiple comparisons of means ## 95% family-wise confidence level ## ## Fit: aov(formula = .) ## ## $GruposG ## diff lwr upr p adj ## G2-G1 2.079207 1.07931276 3.07910145 0.0000146 ## G3-G1 1.010591 -0.03118535 2.05236636 0.0591258 ## G3-G2 -1.068617 -2.14964050 0.01240729 0.0533450

Dados longitudinais agrupados via GEE

O método GEE, conhecido como Modelos Marginais, é um dos métodos mais adequados no tratamento de dados longitudinais agrupados (3 ou mais grupos), quando a variável de interesse segue distribuição normal. Exemplo:

set.seed(16) GrupoI1 <- rnorm(20, 3, 1.5) set.seed(16) GrupoI2 <- rnorm(20, 3.5, 1.2) set.seed(16) GrupoI3 <- rnorm(20, 4, 1) MedidasI <- c(GrupoI1, GrupoI2, GrupoI3) MedidasI %>% shapiro.test()# Segue distribuição normal ## ## Shapiro-Wilk normality test ## ## data: . ## W = 0.96577, p-value = 0.09037 GruposI <- c(rep("G1", length(GrupoI1)), rep("G2", length(GrupoI2)), rep("G3", length(GrupoI3))) %>% as.factor() ID <- c(seq(1:length(GrupoI1)), seq(1:length(GrupoI2)), seq(1:length(GrupoI3))) %>% as.factor() Data <- data.frame(ID, MedidasI, GruposI) if(!require(geepack)){ install.packages("geepack"); require(geepack) } model2 <- geeglm(MedidasI ~ GruposI, id = ID, family = gaussian, corstr = "exchangeable", data = Data[order(Data$ID),]) model2 %>% summary() ## ## Call: ## geeglm(formula = MedidasI ~ GruposI, family = gaussian, data = Data[order(Data$ID), ## ], id = ID, corstr = "exchangeable") ## ## Coefficients: ## Estimate Std.err Wald Pr(>|W|) ## (Intercept) 3.36763 0.32171 109.58 < 2e-16 *** ## GruposIG2 0.42647 0.06434 43.93 3.40e-11 *** ## GruposIG3 0.87746 0.10724 66.95 3.33e-16 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Estimated Scale Parameters: ## Estimate Std.err ## (Intercept) 1.438 0.3614 ## ## Correlation: Structure = exchangeable Link = identity ## ## Estimated Correlation Parameters: ## Estimate Std.err ## alpha 0.9595 2.665e-09 ## Number of clusters: 20 Maximum cluster size: 3

Já consegue definir qual o tipo de teste adequado para a sua pesquisa? Deixe suas dúvidas nos comentários aqui embaixo que iremos responder. E, caso precise de ajuda, entre em contato para fazer seu orçamento! Nós realizamos análises estatísticas para trabalhos acadêmicos como teses e dissertações.

EScrito em colaboração com Luis Henrique Carvalho