R İle Tek Yönlü Tekrarlı Ölçümler için Varyans Analizi Uygulaması
Bu yazıda ikiden çok bağımlı örneklemlerin çekildikleri kitlelerin ortalamalarının eşitliğini test edeceğiz. Yazıyı hazırlarken teorik ve uygulamalı kısımları kaynaklar kısmında belirttiğim Doç.Dr. Mehmet Mert’in kitabından kontrol ederek ilerledim. Testin tek yönlü varyans analizinden farkı adından da anlaşılacağı üzere aynı örneklem birimlerinden k kez tekrarlanan ölçümlerin yapılması.
Veri setini buradan indirebilirsiniz.
Veri setimizde ortalamaları karşılaştırılacak 4 kitle vardır.(Avm kurulmadan önceki,kurulduktan 1,2 ve 3 ay sonraki 25 işyerinin ciroları) Hipotezimizi aşağıdaki şekilde kurabiliriz.
Öncelikle verileri R’ a alalım ve veri setinin bir kısmını görelim.
install.packages("readxl") library(readxl) rpanova2=read_xlsx("C:/Users/compaq/Desktop/rmavbo/rpanova2.xlsx") head(rpanova2)
Çıktı;
ID sütunu işyeri numaralarını belirtmekte. Şimdi 4 birim için ortalamaları hesaplayalım. Bu sayede ciroların avm öncesi ve sonrası dönemlerdeki değişimini kabataslak olarak görebiliriz.
once=mean(rpanova2sonra1) sonra2=mean(rpanova2sonra3) ortalama=rbind(once,sonra1,sonra2,sonra3) colnames(ortalama)=c("Ciro Ortalamaları") ortalama
Çıktı;
Ortalamalara bakarak avm kurulduktan sonra ciroların düştüğünü görmekteyiz. Fakat biz bu farklılıkların istatistiksel olarak anlamlı olup olmadığını merak ediyoruz. Buna bakmadan önce Tek Yönlü Tekrarlı Ölçümlü Varyans Analizinin varsayımlarının sağlanıp sağlanmadığını öğrenmemiz gerek. 2 varsayım vardır;
- Tekrarlı ölçümlerden elde edilen gruplar normal dağılmalı. Grupların çoklu bir şekilde normalliğini test edemeyeceğimiz için her grup için ayrı ayrı Shapiro-Wilk testi yapacağız.Hipotezimizi aşağıdaki gibi kurabiliriz.
H0 : Gözlemimiz normal dağılıyor.
H1: Gözlemimiz normal dağılmıyor.
shapiro.test(rpanova2sonra1) shapiro.test(rpanova2sonra3)
Çıktı;
Sonuçlara göre tüm p-value değerleri 0.05’ten büyük olduğu için temel hipotezimizi kabul edebiliriz. Yani tüm gruplar normal dağılımaktadır.
- İkinci varsayımımız ise küresellik (shpericity) varsayımı. Ölçümler arası farkların korelasyonlarının bir birine eşit olması. Bu varsayımın sağlanıp sağlanmadığını modelimizi kurduktan sonra göreceğiz.
Modeli kurmadan verileri biraz dönüştüreceğiz bunun için reshape2 paketi içerisindeki melt() fonksiyonunu kullanarak ayrı ayrı sütunlara ayırdığımız dönemlerimizi tek bir sütunda toplayacak ve bu dönemlere karşılık gelen ciroları da ayrı bir sütun olarak dönüştüreceğiz.
install.packages("reshape2") library(reshape2) rpanova2.1 = melt(rpanova2, measure.vars = c("once","sonra1","sonra2","sonra3"), variable.name = "Donem", value.name ="ciro" ) rpanova2.1
Çıktı;
Dönüştürdüğümüz veriler için grafik çizebilir ve aykırı gözlem varsa bunları öğrenebiliriz
ggplot(rpanova2.1, aes(Donem,ciro)) +geom_boxplot(aes(col=Donem)) +labs(title="25 İşyerinin AVM Öncesi ve Sonrası 3 Aylık Ciroları ") boxplot.stats(rpanova2.1Donem == "sonra3"])
Çıktı;
57.43 ve 58.57 olmak üzere 2 aykırı değerimiz bulunmakta ve bunlar ciro,rpanova2.1$Donem,
p.adjust.method =”bonferroni”,paired = T)
Çıktı;
Prob değerleri 0.05’ten küçük olduğu için ölçümlerin farklılıkları istatistiksel olarak anlamlıdır diyebiliriz. Örneğin avm kurulduktan sonraki 1. ve 2. ay ortalama ciroları arasındaki fark 84.7760-78.2140=6.5620 (0.0156<0.05) istatistiksel olarak anlamlıdır. Yani avm kurulduktan sonra cirolar anlamlı bir şekilde azalmıştır.
Kaynakça
https://cran.r-project.org/web/packages/ez/ez.pdf
https://seananderson.ca/2013/10/19/reshape/
Mert M., “SPSS STATA Yatay Kesit Veri Analizi Bilgisayar Uygulamaları”, Detay Yayıncılık, ANKARA, 2016