Python'da brown-forsythe testi nasıl yapılır?
Üç veya daha fazla bağımsız grubun ortalamaları arasında anlamlı bir fark olup olmadığını belirlemek için tek yönlü ANOVA kullanılır.
Tek yönlü ANOVA’nın varsayımlarından biri, örneklerin alındığı popülasyonların varyanslarının eşit olmasıdır.
Bunu test etmenin en yaygın yollarından biri, aşağıdaki varsayımları kullanan istatistiksel bir test olan Brown-Forsythe testini kullanmaktır:
- H 0 : Popülasyonlar arasındaki varyanslar eşittir.
- H A : Popülasyonlar arasındaki farklar eşit değildir.
Testin p değeri belirli bir anlamlılık düzeyinin altındaysa (örneğin α = 0,05), o zaman boş hipotezi reddederiz ve varyansların farklı popülasyonlar arasında eşit olmadığı sonucuna varırız.
Bu eğitimde Python’da Brown-Forsythe testinin nasıl gerçekleştirileceğine ilişkin adım adım bir örnek sunulmaktadır.
1. Adım: Verileri girin
Araştırmacıların üç farklı gübrenin farklı bitki büyümesi düzeylerine yol açıp açmadığını bilmek istediklerini varsayalım.
Rastgele 30 farklı bitki seçiyorlar ve bunları 10’arlı üç gruba ayırıyorlar ve her gruba farklı bir gübre uyguluyorlar. Bir ay sonra her bitkinin yüksekliğini ölçüyorlar.
Aşağıdaki tablolar üç grubun her birindeki bitkilerin yüksekliğini göstermektedir:
group1 = [7, 14, 14, 13, 12, 9, 6, 14, 12, 8] group2 = [15, 17, 13, 15, 15, 13, 9, 12, 10, 8] group3 = [6, 8, 8, 9, 5, 14, 13, 8, 10, 9]
2. Adım: Verileri özetleyin
Brown-Forsythe testini yapmadan önce her gruptaki bitki ölçümlerinin varyansını hesaplayabiliriz:
#import numpy import numpy as np #calculate variance of plant measurements in each group print (np. var (group1), np. var (group2), np. var (group3)) 8.69 7.81 7.0
Gruplar arası varyansların farklı olduğunu görebiliriz ancak bu farklılıklarınistatistiksel olarak anlamlı olup olmadığını belirlemek için Brown-Forsythe testini yapabiliriz.
Adım 3: Brown-Forsythe testini gerçekleştirin
Python’da Brown-Forsythe testi gerçekleştirmek için scipy.stats.levene() işlevini kullanabilir ve merkezin medyan olduğunu belirtebiliriz:
import scipy.stats as stats
stats. levene (group1, group2, group3, center=' median ')
LeveneResult(statistic=0.17981072555205047, pvalue=0.8364205218185946)
Sonuçtan şunları gözlemleyebiliriz:
- Test istatistiği: 0,1798
- p-değeri: 0,8364
Testin p değeri 0,05’ten büyük olduğu için testin sıfır hipotezini reddedemiyoruz.
Gruplar arasındaki varyans farklılıkları istatistiksel olarak anlamlı değildir.
Sonraki adımlar
Brown-Forsythe testinin sıfır hipotezini reddetmeyi başaramazsak, veriler üzerinde tek yönlü ANOVA gerçekleştirebiliriz.
Ancak sıfır hipotezinin reddedilmesi varyansların eşitliği varsayımının karşılanmadığını gösterir. Bu durumda iki seçeneğimiz var:
1. Yine de tek yönlü bir ANOVA yapın.
En büyük varyans en küçük varyansın 4 katından büyük olmadığı sürece tek yönlü bir ANOVA’nın aslında eşit olmayan varyanslara karşı dayanıklı olduğu ortaya çıktı.
Yukarıdaki örneğin 2. adımında en küçük varyansın 7,0, en büyük varyansın ise 8,69 olduğunu bulduk. Yani en büyük varyansın en küçüğüne oranı 8,69 / 7,0 = 1,24’tür .
Bu değer 4’ten küçük olduğundan Brown-Forsythe testi varyansların eşit olmadığını gösterse bile tek yönlü ANOVA’ya devam edebiliriz.
2. Kruskal-Wallis testi yapın
En büyük varyansın en küçük varyansa oranı 4’ten büyükse bunun yerine Kruskal-Wallis testi yapılabilir. Bu, tek yönlü ANOVA’nın parametrik olmayan eşdeğeri olarak kabul edilir.
Python’da Kruskal-Wallis testinin adım adım örneğini burada bulabilirsiniz.