Anova de welch em python (passo a passo)


A ANOVA de Welch é uma alternativa à ANOVA unidirecional típica quando a suposição de igualdade de variâncias não é atendida.

O exemplo passo a passo a seguir mostra como realizar a ANOVA de Welch em Python.

Etapa 1: crie os dados

Para determinar se três técnicas de estudo diferentes levam a resultados de exames diferentes, um professor designa aleatoriamente 10 alunos para usar cada técnica (Técnica A, B ou C) durante uma semana e, em seguida, aplica a cada aluno um teste de igual dificuldade.

Os resultados dos exames dos 30 alunos são apresentados abaixo:

 A = [64, 66, 68, 75, 78, 94, 98, 79, 71, 80]
B = [91, 92, 93, 90, 97, 94, 82, 88, 95, 96]
C = [79, 78, 88, 94, 92, 85, 83, 85, 82, 81]

Etapa 2: teste de diferenças iguais

A seguir, podemos realizar o teste de Bartlett para determinar se as variâncias entre cada grupo são iguais.

Se o valor p da estatística de teste estiver abaixo de um certo nível de significância (como α = 0,05), então podemos rejeitar a hipótese nula e concluir que nem todos os grupos têm a mesma variância.

Podemos usar o seguinte código para realizar o teste Bartlett em Python:

 import scipy. stats as stats

#perform Bartlett's test 
stats. bartlett (A, B, C)

BartlettResult(statistic=9.039674395, pvalue=0.010890796567)

O valor p ( 0,01089 ) do teste de Bartlett é menor que α = 0,05, o que significa que podemos rejeitar a hipótese nula de que cada grupo tem a mesma variância.

Assim, a suposição de igualdade de variâncias é violada e podemos prosseguir com a ANOVA de Welch.

Etapa 3: execute a ANOVA de Welch

Para realizar a ANOVA de Welch em Python, podemos usar a função welch_anova() do pacote Penguin.

Primeiro, precisamos instalar o Penguin:

 pip install Penguin

Então podemos usar o seguinte código para realizar a ANOVA de Welch:

 import penguin as pg
import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' score ': [64, 66, 68, 75, 78, 94, 98, 79, 71, 80,
                             91, 92, 93, 90, 97, 94, 82, 88, 95, 96,
                             79, 78, 88, 94, 92, 85, 83, 85, 82, 81],
                   ' group ': np. repeat (['a', 'b', 'c'], repeats = 10 )}) 

#perform Welch's ANOVA
pg. welch_anova (dv=' score ', between=' group ', data=df)

        Source ddof1 ddof2 F p-unc np2
0 group 2 16.651295 9.717185 0.001598 0.399286

O valor p geral ( 0,001598 ) da tabela ANOVA é menor que α = 0,05, o que significa que podemos rejeitar a hipótese nula de que os resultados do exame são iguais entre as três técnicas de estudo.

Podemos então realizar o teste post-hoc de Games-Howell para determinar exatamente quais médias de grupo são diferentes:

 pg. pairwise_gameshowell (dv=' score ', between=' group ', data=df)


        A B mean(A) mean(B) diff se T df pval	
0 a b 77.3 91.8 -14.5 3.843754 -3.772354 11.6767 0.0072
1 a c 77.3 84.7 -7.4 3.952777 -1.872102 12.7528 0.1864
2 b c 91.8 84.7 7.1 2.179959 3.256942 17.4419 0.0119

A partir dos valores de p, podemos ver que a diferença média entre os grupos a e b é significativamente diferente e a diferença média entre os grupos b e c é significativamente diferente.

Recursos adicionais

Como realizar ANOVA unidirecional em Python
Como realizar uma ANOVA bidirecional em Python
Como realizar ANOVA de medidas repetidas em Python

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *