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

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir