R ile t-test ve Wilcoxon test
Pek çok istatistiksel test değişken ortalamalarının belli bir değerden (tek örneklem) yahut başka bir değişken ortalamasından (iki örneklem) farklı olup olmadığını hesaplar. En sık kullanılan testlerden birisi olan t-testi iki ortalamayi karşılaştırmak veya bir değişkenin ortalamasının bilinen bir sayıdan farklı olup olmadığını test etmek için kullanılır.
Tek Örneklem
Mesela, mtcars
verisetinde yer alan mpg
değişkeninin ortalamasının belli bir değerden farklı olup olmadığına bakalım. Bunun için önce mpg
değişkenine ait temel istatistikleri hesaplayalım:
attach(mtcars)
mean(mpg); sd(mpg); quantile(mpg)
## [1] 20.09062
## [1] 6.026948
## 0% 25% 50% 75% 100%
## 10.400 15.425 19.200 22.800 33.900
T-testi ile ortalaması 30 olan bir başka değişkenin mpg değişkeninden farklı olup olmadığına bakalım:
t.test(mpg, mu=30)
##
## One Sample t-test
##
## data: mpg
## t = -9.3009, df = 31, p-value = 1.757e-10
## alternative hypothesis: true mean is not equal to 30
## 95 percent confidence interval:
## 17.91768 22.26357
## sample estimates:
## mean of x
## 20.09062
Test çıktısı test adını içeren başlıkla başlıyor; tek örneklem t-testi. İlk satırda kullandığımız verinin/değişkenin adını görüyoruz, mpg
. İkinci satırda test sonucu olarak t
değeri, df
yani degrees of freedom ve p
değeri yer alıyor. Sonucu yorumlamak için t tablosuna bakmamıza gerek yok. p
değeri 0,05’den hatta 0,01’den de küçük olduğundan ortalamanın 30’dan farklı olduğunu söyleyebiliriz. Üçüncü satırda alternatif hipotez belirtilmiş. Hemen altta %95 güven aralığı gösterilmiş. Buna göre null hipotezin geçerliliğini koruyabilmesi için diğer ortalamanın 17,92 ile 22,26 arasında bir değer olması gerekiyor. En sondaysa mpg
değişkeninin ortalaması verilmiş.
t.test()
fonksiyonu pek çok argüman alabilir. Bunlardan birisi olan mu
yukarıda kullanıldı. conf.level
ile güven aralığını belirleyebiliriz. Mesela, conf.level = 0.99
ile güven aralığını %99 olarak ayarlayabiliriz. Diğer bir argüman olan alternative="greater"
ve alternative="less"
ile tek yönlü test seçeneklerinden birisini seçebiliriz.
Bilindiği gibi parametrik testler verinin normal dağılıma sahip olduğunu varsayar. Nanparametrik testlerde bu varsayım aranmaz ve bu sayede az sayıda değer/gözlem içeren değişkenlere uygulanabilir. Nanparametrik testlerden olan Wilcoxon testi için R paketinde wilcox.test()
fonksiyonu bulunmaktadır. Örnek olması amacıyla yukarıdaki aynı değişken ile Wilcoxon testi yapalım:
wilcox.test(mpg, mu=30)
## Warning in wilcox.test.default(mpg, mu = 30): cannot compute exact p-value with
## ties
##
## Wilcoxon signed rank test with continuity correction
##
## data: mpg
## V = 11, p-value = 2.333e-06
## alternative hypothesis: true location is not equal to 30
Görüldüğü gibi test çıktısında fazla bilgi yok. Nonparametrik testlerde parametre tahmini olmadığından sonuçta bir güven aralığı da bulunmuyor. Wilcoxon test signed-rank test olarak adlandırılan gruba girdiğinden aynı değeri içeren gözlemler test için problem teşkil etmektedir. mpg
değişkeninde altı tane mükerrer gözlem bulunmaktadır. Bu durum uyarı mesajı olarak belirtilmiştir. Test çıktısında yer alan V
değeri pozitif değerlerin toplamıdır.
İki örneklem
İki örneklemin aynı ortalamaya sahip olup olmadığını test etmek için kullanılır. ?mtcars
komutuyla mtcars verisetini incelersek, araçların motor tipini gösteren vs
değişkeninin olduğunu görebiliriz. table(vs)
komutu araçlarının 18’inin 0 yani V tipi, 14’ünün 1 yani normal motorlu olduğunu görebiliriz. T-test ile araçların yakıt sarfiyatlarının motor türüne göre farklılaşıp farklılaşmadığını test edebiliriz:
t.test(mpg ~ vs)
##
## Welch Two Sample t-test
##
## data: mpg by vs
## t = -4.6671, df = 22.716, p-value = 0.0001098
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -11.462508 -4.418445
## sample estimates:
## mean in group 0 mean in group 1
## 16.61667 24.55714
İki örneklem t-testinde değişkenleri tilde (~) ile ayırdık. Test çıktısı tek örneklem t-testiyle aynı.p
değeri araçların yakıt sarfiyatlarının motor türüne göre farklı olduğunu gösteriyor. Güven aralığının sıfır değeri içermemesi de iki araç türünün ortalama yakıt sarfiyatlarının farklı olduğunu göstermekte. En altta yer verilen mpg
değeri ortalamaları, sıfır ile gösterilen V tip motorlu araçların bir galon yakıtla daha az mesafe aldığını gösteriyor.
R paketinde standart olarak bulunan t-testi (diğer istatistik paketlerinden farklı olarak) örneklemler arasında eşit varyans olduğu varsayımını taşımayan Welch metodunu uygular. Eşit varyans varsayımının geçerli olduğunnu düşünüyorsak komuta var.equal=T
argümanını ekleyebiliriz.
t.test(mpg ~ vs, var.equal=T)
##
## Two Sample t-test
##
## data: mpg by vs
## t = -4.8644, df = 30, p-value = 3.416e-05
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -11.274221 -4.606732
## sample estimates:
## mean in group 0 mean in group 1
## 16.61667 24.55714
İlk testten farklı olarak df
(degrees of freedom) değerinin arttığını, p
değerinin azaldığını görüyoruz.
Örneklemlerin varyans değerlerinin eşit olup olmadığını var.test()
ile F dağılımını hesaplayarak analiz edebiliriz:
var.test(mpg ~ vs)
##
## F test to compare two variances
##
## data: mpg by vs
## F = 0.51515, num df = 17, denom df = 13, p-value = 0.1997
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.1714935 1.4353527
## sample estimates:
## ratio of variances
## 0.5151485
p
değeri istatistiksel olarak anlamlı olmaadığı için iki örneklemin varyanslarının farklı olduğunu iddia eden alternatif hipotezi reddediyoruz. Dolayısıyla ilk t-testi daha sağlıklı. R paketinde varyansları karşılaştıran başka testlerde bulunmaktadır. Bu testlerin hepsinin kendisine göre varsayımları bulunmaktadır. Bu arada F testi grupların bağımsız olduklarını varsayar ve eş gruplara (paired sample) uygulanmaz.
İki örneklem t-testinin nanparametrik alternatifi tek örneklemdeki gibi yine Wilcoxon testi:
wilcox.test(mpg ~ vs)
## Warning in wilcox.test.default(x = c(21, 21, 18.7, 14.3, 16.4, 17.3, 15.2, :
## cannot compute exact p-value with ties
##
## Wilcoxon rank sum test with continuity correction
##
## data: mpg by vs
## W = 22.5, p-value = 9.034e-05
## alternative hypothesis: true location shift is not equal to 0
Eş grupların, yani ilk-test, son-test (pre ve post test) sonuçlarını karşılaştırmak için t.test(pre, post, paired = T)
ve wilcox.test(pre, post, paired = T)
komutları kullanılır. Komutlarda geçen pre
ve post
ifadeleri yerine ilk ve son test değerlerini içeren değişkenlerin adları girilir. Test çıktısı diğer t-test ve Wilcoxon test çıktısıyla aynı biçimde yorumlanır.