Anova welcha w pythonie (krok po kroku)


Analiza ANOVA Welcha jest alternatywą dla typowej jednokierunkowej analizy ANOVA , gdy nie jest spełnione założenie o równości wariancji .

Poniższy przykład pokazuje krok po kroku, jak wykonać analizę ANOVA Welcha w Pythonie.

Krok 1: Utwórz dane

Aby ustalić, czy trzy różne techniki nauki prowadzą do różnych wyników egzaminu, profesor losowo przydziela 10 uczniów do stosowania każdej techniki (techniki A, B lub C) przez tydzień, a następnie przydziela każdemu uczniowi test o równym stopniu trudności.

Poniżej prezentujemy wyniki egzaminów 30 uczniów:

 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]

Krok 2: Test równych różnic

Następnie możemy wykonać test Bartletta , aby określić, czy wariancje pomiędzy każdą grupą są równe.

Jeśli wartość p statystyki testowej jest poniżej pewnego poziomu istotności (np. α = 0,05), wówczas możemy odrzucić hipotezę zerową i stwierdzić, że nie wszystkie grupy mają tę samą wariancję.

Możemy użyć następującego kodu, aby wykonać test Bartletta w Pythonie:

 import scipy. stats as stats

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

BartlettResult(statistic=9.039674395, pvalue=0.010890796567)

Wartość p ( 0,01089 ) testu Bartletta jest mniejsza niż α = 0,05, co oznacza, że możemy odrzucić hipotezę zerową, że każda grupa ma tę samą wariancję.

Tym samym naruszone zostaje założenie o równości wariancji i możemy przystąpić do analizy ANOVA Welcha.

Krok 3: Wykonaj ANOVA Welcha

Aby wykonać analizę ANOVA Welcha w Pythonie, możemy użyć funkcji welch_anova() z pakietu Penguin.

Najpierw musimy zainstalować Penguina:

 pip install Penguin

Następnie możemy użyć następującego kodu, aby wykonać ANOVA Welcha:

 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

Ogólna wartość p ( 0,001598 ) tabeli ANOVA jest mniejsza niż α = 0,05, co oznacza, że możemy odrzucić hipotezę zerową, że wyniki egzaminu są równe wśród trzech technik badawczych.

Następnie możemy wykonać test post-hoc Gamesa-Howella, aby dokładnie określić, które średnie grupowe są różne:

 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

Z wartości p widzimy, że średnia różnica między grupami a i b jest znacząco różna, a średnia różnica między grupami b i c jest znacząco różna.

Dodatkowe zasoby

Jak wykonać jednokierunkową ANOVA w Pythonie
Jak wykonać dwukierunkową ANOVA w Pythonie
Jak wykonać powtarzalne pomiary ANOVA w Pythonie

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *