Anova di welch in python (passo dopo passo)


L’ANOVA di Welch è un’alternativa alla tipica ANOVA unidirezionale quando il presupposto dell’uguaglianza delle varianze non è soddisfatto.

Il seguente esempio passo passo mostra come eseguire l’ANOVA di Welch in Python.

Passaggio 1: creare i dati

Per determinare se tre diverse tecniche di studio portano a risultati di esame diversi, un professore assegna casualmente a 10 studenti l’uso di ciascuna tecnica (tecnica A, B o C) per una settimana, quindi assegna a ciascuno studente un test di uguale difficoltà.

I risultati degli esami dei 30 studenti sono presentati di seguito:

 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]

Passaggio 2: test delle differenze uguali

Successivamente, possiamo eseguire il test di Bartlett per determinare se le varianze tra ciascun gruppo sono uguali.

Se il valore p della statistica test è inferiore a un certo livello di significatività (come α = 0,05), allora possiamo rifiutare l’ipotesi nulla e concludere che non tutti i gruppi hanno la stessa varianza.

Possiamo usare il seguente codice per eseguire il test Bartlett in Python:

 import scipy. stats as stats

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

BartlettResult(statistic=9.039674395, pvalue=0.010890796567)

Il valore p ( 0,01089 ) del test di Bartlett è inferiore a α = 0,05, il che significa che possiamo rifiutare l’ipotesi nulla che ciascun gruppo abbia la stessa varianza.

Pertanto, l’assunzione dell’uguaglianza delle varianze viene violata e possiamo procedere con l’ANOVA di Welch.

Passaggio 3: eseguire l’ANOVA di Welch

Per eseguire l’ANOVA di Welch in Python, possiamo utilizzare la funzione welch_anova() dal pacchetto Penguin.

Per prima cosa dobbiamo installare Penguin:

 pip install Penguin

Quindi possiamo utilizzare il seguente codice per eseguire l’ANOVA di 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

Il valore p complessivo ( 0,001598 ) della tabella ANOVA è inferiore a α = 0,05, il che significa che possiamo rifiutare l’ipotesi nulla che i risultati dell’esame siano uguali tra le tre tecniche di studio.

Possiamo quindi eseguire il test post-hoc di Games-Howell per determinare esattamente quali medie di gruppo sono diverse:

 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

Dai valori p, possiamo vedere che la differenza media tra i gruppi a e b è significativamente diversa e la differenza media tra i gruppi b e c è significativamente diversa.

Risorse addizionali

Come eseguire ANOVA unidirezionale in Python
Come eseguire un’ANOVA bidirezionale in Python
Come eseguire misure ripetute ANOVA in Python

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *