Welch'in python'daki anova'sı (adım adım)
Welch’in ANOVA’sı, varyansların eşitliği varsayımı karşılanmadığında tipik tek yönlü ANOVA’ya bir alternatiftir.
Aşağıdaki adım adım örnek, Welch’in ANOVA’sının Python’da nasıl gerçekleştirileceğini gösterir.
1. Adım: Verileri oluşturun
Üç farklı çalışma tekniğinin farklı sınav sonuçlarına yol açıp açmadığını belirlemek için, bir profesör rastgele 10 öğrenciye her tekniği (Teknik A, B veya C) bir hafta boyunca kullanmaları için atar ve ardından her öğrenciye eşit zorlukta bir test verir.
30 öğrencinin sınav sonuçları aşağıda sunulmuştur:
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]
Adım 2: Eşit Farklar Testi
Daha sonra, her grup arasındaki varyansların eşit olup olmadığını belirlemek için Bartlett testi yapabiliriz.
Test istatistiğinin p değeri belirli bir anlamlılık düzeyinin altındaysa (α = 0,05 gibi), o zaman sıfır hipotezini reddedebilir ve tüm grupların aynı varyansa sahip olmadığı sonucuna varabiliriz.
Python’da Bartlett testini gerçekleştirmek için aşağıdaki kodu kullanabiliriz:
import scipy. stats as stats
#perform Bartlett's test
stats. bartlett (A, B, C)
BartlettResult(statistic=9.039674395, pvalue=0.010890796567)
Bartlett testinin p değeri ( .01089 ) α = .05’ten küçüktür; bu, her grubun aynı varyansa sahip olduğu şeklindeki sıfır hipotezini reddedebileceğimiz anlamına gelir.
Böylece varyansların eşitliği varsayımı ihlal edilmiş olur ve Welch’in ANOVA’sına geçebiliriz.
Adım 3: Welch’in ANOVA’sını gerçekleştirin
Python’da Welch’in ANOVA’sını gerçekleştirmek için Penguin paketindeki welch_anova() fonksiyonunu kullanabiliriz.
Öncelikle Penguin’i kurmamız gerekiyor:
pip install Penguin
Daha sonra Welch’in ANOVA’sını gerçekleştirmek için aşağıdaki kodu kullanabiliriz:
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
ANOVA tablosunun genel p değeri ( 0,001598 ) α = 0,05’ten küçüktür; bu, sınav sonuçlarının üç çalışma tekniği arasında eşit olduğuna ilişkin boş hipotezi reddedebileceğimiz anlamına gelir.
Daha sonra tam olarak hangi grup ortalamalarının farklı olduğunu belirlemek için Games-Howell post-hoc testini gerçekleştirebiliriz:
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
P değerlerinden a ve b grupları arasındaki ortalama farkın anlamlı derecede farklı olduğunu ve b ve c grupları arasındaki ortalama farkın anlamlı derecede farklı olduğunu görebiliriz.
Ek kaynaklar
Python’da Tek Yönlü ANOVA Nasıl Gerçekleştirilir
Python’da İki Yönlü ANOVA Nasıl Gerçekleştirilir
Python’da Tekrarlanan Ölçümler ANOVA Nasıl Gerçekleştirilir