ANOVA Testi


Bu yazımızda R programlamada anova testi nasıl yapılacağını öğreneceğiz. R diline geçmeden önce anova testinden kısaca bahsedelim. “Analysis Of Variance” sözcüğünün kısaltmasından oluşmaktadır. Elimizde bulunan veri setine ait iki farklı grubun ortalamalarının farklı olup olmadığını belirler. Bu farkı için kullanılan test ise t testidir. Eğer grup sayısı ikiden fazla olursa F testi kullanılmaktadır ki biz bu işleme Anova diyoruz. Hipotez testi ise şu şekilde kurulmaktadır;

                H0 : µ1 = µ2 = µ3 = …………… = µN         ortalamalar arasında fark yoktur.

                HA : Ortalamalardan en az ikisi arasında anlamlı fark vardır.

 

Anova Testinin Varsayımları

·         Örneklemlerin normal yada normale yakın olduğu varsayılır

·         Örneklemler birbirinden bağımsız ve popülasyon varyansları eşit olduğu varsayılır.

Anova Testi Çeşitleri

·         Tek Yönlü Anova : Yukarıda da bahsedildiği gibi iki veya daha fazla gruba ait ortalamaların farklı olup olmadığını test eder.

·         Çift Yönlü Anova : Çift yönlü anovanın diğerinden tek farkı birden fazla faktörün olduğu durumlarda kullanılmasıdır.

R PROGRAMLAMA

Anova testini R dilinde “aov” komutu kullanarak veri setine uygulayabiliriz. Bu komutun argümanlarına göz atalım;

aov(formula, data = NULL, projections = FALSE, qr = TRUE,    contrasts = NULL, ...)

“formula” argümanı veri setine ait üretilen formülü temsil etmektedir (Ör: response ~ factor), “data” argümanına veri seti adı girilmelidir, “projections” argümanı tahminlerin geri döndürülüp dündürülmeyeceğini ifade eder ve “true – false” değerini alır,” contrasts” argümanı formülde karşılaştırılan birkaç faktörün listesidir. Bizim için burada önemli olan “formula” ve “data” argümanlarıdır.

ÖRNEK – I

Şeker hastaları için uygulanan ilaç (“A ilacı”,”B ilacı”,”C ilacı”) tedavileri ve hastaya olan etkilerini barındıran bir veri seti olduğunu varsayalım. Öncelikle bu verisetini programın içerisine atalım.

etki = c(4, 5, 4, 3, 2, 4, 3, 4, 4, 6, 8, 4, 5, 4, 6, 5, 8, 6, 6, 7, 6, 6, 7, 5, 6, 5, 5)

şimdide ilaç isimlerini tanıtalım

hap = c(rep("A",9), rep("B",9), rep("C",9))

 

oluşturulan bu veri setlerini tek bir data frame içerisine alalım. Yukarıdaki komutta bir nevi etki isimli diziyi dokuzarlı üç kümeye ayırıyoruz.

data = data.frame(etki, hap)

Oluşturduğumuz veri setine bir bakalım

head(data)

  etki hap

1    4   A

2    5   A

3    4   A

4    3   A

5    2   A

6    4   A

Şimdi anova testine geçebiliriz.

sonuc = aov(etki ~ hap, data=data)

summary(sonuc)

                               Df           Sum Sq               Mean Sq             F value                 Pr(>F)   

hap                        2              28.22                    14.111   11.91                    0.000256 ***

Residuals            24           28.44                     1.185                    

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Testin sonucunu yukarıdaki gibi görebiliriz. Sonuçlara göre p değeri 0.0003 olduğuna göre null hipotezini reddedebiliriz.

ÖRNEK – II

R programı içerisinde bulunan “npk” isimli veri seti üzerinden bir örnek daha yapalım. Bu veri seti 24 satır ve 5 sütundan oluşmaktadır. Sütunlar; block, N, P, K, yield şeklindedir. Block; 1 den 6 ya kadar blok numaralarını tutmakta, N; nitrojen göstergesi, P;  fosfat göstergesi, K; potasyum göstergesidir. Örnek komutlara bir bakalım

npk.aov <- aov(yield ~ block + N*P*K, npk)

npk.aov

summary(npk.aov)

 

                               Df           Sum Sq                Mean Sq             F value                 Pr(>F)  

block                     5             343.3                     68.66                     4.447                     0.01594 *

N                            1             189.3                     189.28                  12.259                  0.00437 **

P                            1             8.4                         8.40                       0.544                     0.47490  

K                            1             95.2                       95.20                     6.166                     0.02880 *

N:P                        1             21.3                       21.28                     1.378                     0.26317  

N:K                        1             33.1                        33.13                    2.146                     0.16865  

P:K                         1             0.5                         0.48                       0.031                     0.86275  

Residuals   12  185.3   15.44                  

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Konu ile ilgili görüş ve önerileriniz için facebook sayfamızdan bizimle irtibata geçebilirsiniz. Lütfen sayfamızı beğenmek için aşağıdaki “beğen” butonuna tıklayınız.

KAYNAK

http://www.stat.columbia.edu/~martin/W2024/R3.pdf

 

Yazar Kimdir?

Sıtkı Cansu, 19 Ekim 1985 yilinda Konya-Beyşehir'de dogmustur.İlk, orta ve liseyi Beyşehir'de bitirmis olup Konya-Ereğli Selçuk MYO Bilgisayar programcılığı ve Mugla Sıtkı Koçman Üniversitesi İstatistik bölümünden mezun olmustur. Çesitli yerlerde web tasarımcı ve veri tabani yöneticisi olarak çalışan yazar, son üç senedir ingilizce öğretmenliği yapmaktadir. Şu anda yüksek lisansını tamamlamak üzere Mugla Üniversitesinde öğrenim görmektedir.