R'de friedman testi nasıl yapılır?
Friedman testi, tekrarlanan ölçümler ANOVA’ya parametrik olmayan bir alternatiftir. Her grupta aynı deneklerin yer aldığı üç veya daha fazla grubun ortalamaları arasında istatistiksel olarak anlamlı bir fark olup olmadığını belirlemek için kullanılır.
Bu eğitimde Friedman testinin R’de nasıl gerçekleştirileceği açıklanmaktadır.
Örnek: R’deki Friedman testi
R’de Friedman testini gerçekleştirmek için aşağıdaki sözdizimini kullananriedman.test() fonksiyonunu kullanabiliriz:
riedman.test (y, gruplar, bloklar)
Altın:
- y: yanıt değerlerinin bir vektörü.
- gruplar: bir gözlemin ait olduğu “grubu” belirten bir değerler vektörü.
- bloklar: “engelleme” değişkenini gösteren bir değerler vektörü.
Bu fonksiyon bir Ki-kare test istatistiği ve buna karşılık gelen bir p değeri üretir. P değeri belirli bir anlamlılık düzeyinin altındaysa (ortak seçenekler 0,10, 0,05 ve 0,01’dir), o zaman grupların her biri arasındaki ortalamaların eşit olmadığına dair yeterli kanıt vardır.
Bu özelliğin nasıl kullanılacağını göstermek için, beş hastanın dört farklı ilaç tedavisine verdiği reaksiyon süresini gösteren bir veri seti oluşturacağız. Her hasta dört ilacın her birinde ölçüldüğünden, ortalama reaksiyon süresinin ilaçlar arasında farklılık gösterip göstermediğini belirlemek için Friedman testini kullanacağız.
Öncelikle veri setimizi oluşturacağız:
#create data data <- data.frame(person = rep(1:5, each=4), drug = rep(c(1, 2, 3, 4), times=5), score = c(30, 28, 16, 34, 14, 18, 10, 22, 24, 20, 18, 30, 38, 34, 20, 44, 26, 28, 14, 30)) #view data data person drug score 1 1 1 30 2 1 2 28 3 1 3 16 4 1 4 34 5 2 1 14 6 2 2 18 7 2 3 10 8 2 4 22 9 3 1 24 10 3 2 20 11 3 3 18 12 3 4 30 13 4 1 38 14 4 2 34 15 4 3 20 16 4 4 44 17 5 1 26 18 5 2 28 19 5 3 14 20 5 4 30
Daha sonra, yanıt değişkeni olarak puanı , gruplandırma değişkeni olarak ilacı ve engelleme değişkeni olarak kişiyi kullanarak Friedman testini gerçekleştireceğiz:
#perform Friedman Test
friedman.test(y=data$score, groups=data$drug, blocks=data$person)
Friedman rank sum test
data: data$score, data$drug and data$person
Friedman chi-squared = 13.56, df = 3, p-value = 0.00357
Ki-kare test istatistiği 13,56 ve karşılık gelen p değeri 0,00357’dir . Bu p değeri 0,05’ten küçük olduğundan, ortalama yanıt süresinin dört ilacın tümü için aynı olduğu yönündeki sıfır hipotezini reddedebiliriz. Kullanılan ilaç türünün yanıt süresinde istatistiksel olarak anlamlı farklılıklara yol açtığı sonucuna varmak için yeterli kanıtımız var.
Friedman testi bize ilaçlar arasında ortalama tepki sürelerinde farklılıklar olup olmadığını söylese de, bize spesifik olarak hangi ilaçların farklı ortalama tepki sürelerine sahip olduğunu söylemez. Bunu anlamak için post-hoc test yapmamız gerekiyor.
Bir Friedman testi için uygun post hoc testi, aşağıdaki sözdizimi kullanılarak uygulanabilen, Bonferroni düzeltmeli ikili Wilcoxon sıra toplamı testidir:
pairwise.wilcox.test(veri$puan, veri$ilaç, p.adj = “iyilik”)
Altın:
- x: yanıt vektörü
- g: vektör gruplaması
- p.adj: p-değeri ayarlama yöntemi; seçenekler arasında holm, hochberg, hommel, bonferroni, BH, BY, fdr ve hiçbiri bulunur
Örneğimiz için kullanacağımız sözdizimi şöyledir:
#perform post-hoc tests
pairwise.wilcox.test(data$score, data$drug, p.adj = "bonf")
Pairwise comparisons using Wilcoxon rank sum test
data: data$score and data$drug
1 2 3
2 1,000 - -
3 0.449 0.210 -
4 1,000 1,000 0.072
P value adjustment method: bonferroni
Bu, her ikili Wilcoxon sıra toplamı testi için p değerini gösteren bir matris üretir. İstatistiksel olarak 0,10 oranında anlamlı farka sahip olan tek ilaç grubunun grup 3 ve 4 olduğunu görüyoruz ( p = 0,072 ).