Python'da tukey testi nasıl yapılır?
Üç veya daha fazla bağımsız grubun ortalamaları arasında istatistiksel olarak anlamlı bir fark olup olmadığını belirlemek için tek yönlü ANOVA kullanılır.
ANOVA tablosunun genel p değeri belirli bir anlamlılık düzeyinin altındaysa, grup ortalamalarından en az birinin diğerlerinden farklı olduğunu söylemek için yeterli kanıtımız var demektir.
Ancak bu bize hangi grupların birbirinden farklı olduğunu söylemez. Bu bize basitçe tüm grup ortalamalarının eşit olmadığını söyler. Hangi grupların birbirinden farklı olduğunu tam olarak bilmek için post hoc test yapmamız gerekir.
En sık kullanılan post hoc testlerden biri, aile bazında hata oranını kontrol ederken her grubun ortalamaları arasında ikili karşılaştırmalar yapmamıza olanak tanıyan Tukey testidir .
Bu eğitimde Python’da Tukey testinin nasıl gerçekleştirileceğine ilişkin adım adım bir örnek sunulmaktadır.
1. Adım: Gerekli paketleri ve işlevleri yükleyin
Öncelikle gerekli paketleri ve fonksiyonları Python’a yükleyeceğiz:
import pandas as pd
import numpy as np
from scipy. stats import f_oneway
from statsmodels. stats . multicomp import pairwise_tukeyhsd
Adım 2: ANOVA modelini yerleştirin
Aşağıdaki kod, üç grupla (A, B ve C) sahte bir veri kümesinin nasıl oluşturulacağını ve her grubun ortalama değerlerinin eşit olup olmadığını belirlemek için verilere tek yönlü bir ANOVA modelinin nasıl yerleştirileceğini gösterir:
#enter data for three groups a = [85, 86, 88, 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] #perform one-way ANOVA f_oneway(a, b, c) F_onewayResult(statistic=5.167774552944481, pvalue=0.012582197136592609)
ANOVA tablosundan genel p değerinin 0,01258 olduğunu görebiliriz.
Bu sayı 0,05’ten küçük olduğundan her gruptaki ortalama değerlerin eşit olmadığını söyleyebilecek yeterli kanıtımız var.
Yani tam olarak hangi grup ortalamalarının farklı olduğunu belirlemek için Tukey testini yapabiliriz.
3. Adım: Tukey testini gerçekleştirin
Python’da Tukey testini gerçekleştirmek için statsmodels kütüphanesindekipairwise_tukeyhsd () fonksiyonunu kullanabiliriz:
#create DataFrame to hold data df = pd. DataFrame ({'score': [85, 86, 88, 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 Tukey's test tukey = pairwise_tukeyhsd(endog=df['score'], groups=df['group'], alpha= 0.05 ) #display results print (tukey) Multiple Comparison of Means - Tukey HSD, FWER=0.05 ==================================================== === group1 group2 meandiff p-adj lower upper reject -------------------------------------------------- --- ab 8.4 0.0158 1.4272 15.3728 True ac 1.3 0.8864 -5.6728 8.2728 False bc -7.1 0.0453 -14.0728 -0.1272 True -------------------------------------------------- ---
Sonucun nasıl yorumlanacağı aşağıda açıklanmıştır:
- a ve b arasındaki ortalama fark için P değeri: 0,0158
- a ve c arasındaki ortalamalar farkının P değeri: 0,8864
- b ve c arasındaki ortalama fark için P değeri: 0,0453
Dolayısıyla, a ve b grupları ile b ve c gruplarının ortalamaları arasındaistatistiksel olarak anlamlı bir fark olduğu, ancak a ve c gruplarının ortalamaları arasında istatistiksel olarak anlamlı bir fark olmadığı sonucuna varabiliriz.
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