A ANOVA de três vias é utilizado para determinar se existe ou não uma diferença estatisticamente significativa entre as médias de três ou mais grupos independentes que foram divididos em três factores.
O exemplo seguinte mostra como efetuar uma ANOVA de três vias em Python.
Exemplo: ANOVA de três vias em Python
Suponha que um investigador pretende determinar se dois programas de treino conduzem a diferentes melhorias médias na altura de salto entre os jogadores de basquetebol universitário.
O investigador suspeita que o sexo e a divisão (Divisão I ou II) também podem afetar a altura dos saltos, pelo que recolhe dados sobre estes factores.
O seu objetivo é realizar uma ANOVA de três vias para determinar como o programa de treino, o sexo e a divisão afectam a altura dos saltos.
Utilize os seguintes passos para efetuar esta ANOVA de três vias em Python:
Passo 1: Criar os dados
Primeiro, vamos criar um DataFrame do pandas para guardar os dados:
import numpy as np import pandas as pd #create DataFrame df = pd. DataFrame ({' program ': np. repeat ([1, 2], 20), ' gender ': np. tile (np. repeat (['M', 'F'], 10), 2), ' division ': np. tile (np. repeat ([1, 2], 5), 4), ' height ': [7, 7, 8, 8, 7, 6, 6, 5, 6, 5, 5, 5, 4, 5, 4, 3, 3, 4, 3, 3, 6, 6, 5, 4, 5, 4, 5, 4, 4, 3, 2, 2, 1, 4, 4, 2, 1, 1, 2, 1]}) #view first ten rows of DataFrame df[:10]programa género divisão altura 0 1 M 1 7 1 1 M 1 7 2 1 M 1 8 3 1 M 1 8 4 1 M 1 7 5 1 M 2 6 6 1 M 2 6 7 1 M 2 5 8 1 M 2 6 9 1 M 2 5
Passo 2: Efetuar a ANOVA de três vias
De seguida, podemos utilizar o anova_lm() da função modelos estatísticos para efetuar a ANOVA de três vias:
import statsmodels. api as sm from statsmodels. formula . api import ols #realizar ANOVA de três vias model = ols("""height ~ C(programa) + C(género) + C(divisão) + C(programa):C(género) + C(programa):C(divisão) + C(género):C(divisão) + C(programa):C(género):C(divisão)""", data=df). fit () sm. stats . anova_lm (model, typ= 2 ) sum_sq df F PR(>F) C(programa) 3.610000e+01 1.0 6.563636e+012.983934e-09 C(gender) 6.760000e+01 1.0 1.229091e+02 1.714432e-12 C(division) 1.960000e+01 1.0 3.563636e+01 1.185218e-06 C(program):C(gender) 2.621672e-30 1.0 4.766677e-30 1.000000e+00 C(program):C(division) 4.000000e-01 1.0 7.272727e-01 4.001069e-01 C(gender):C(division) 1.000000e-01 1.0 1.818182e-01 6.726702e-01 C(program):C(gender):C(division) 1.000000e-01 1.0 1.818182e-01 6.726702e-01 Residual1.760000e+01 32.0 NaN NaN
Etapa 3: Interpretar os resultados
O Pr(>F) apresenta o valor p para cada fator individual e as interacções entre os factores.
A partir do resultado, podemos ver que nenhuma das interacções entre os três factores foi estatisticamente significativa.
Também podemos ver que cada um dos três factores (programa, género e divisão) foi estatisticamente significativo com os seguintes valores de p:
- Valor P de programa : 0.00000000298
- Valor P de género : 0.00000000000171
- Valor P de divisão : 0.00000185
Concluindo, gostaríamos de afirmar que o programa de treino, o género e a divisão são todos preditores significativos do aumento da altura de salto entre os jogadores.
Afirmamos também que não existem efeitos de interação significativos entre estes três factores.