R'de üç yönlü anova nasıl gerçekleştirilir


Üç faktöre dağılmış üç veya daha fazla bağımsız grubun ortalamaları arasında istatistiksel olarak anlamlı bir fark olup olmadığını belirlemek için üç yönlü ANOVA kullanılır.

Aşağıdaki örnek, R’de üç yönlü bir ANOVA’nın nasıl gerçekleştirileceğini gösterir.

Örnek: R’de üç yönlü ANOVA

Bir araştırmacının, iki antrenman programının kolej basketbolcuları arasında sıçrama yüksekliğinde farklı ortalama iyileşmelere yol açıp açmadığını belirlemek istediğini varsayalım.

Araştırmacı, cinsiyet ve bölünmenin (Bölüm I veya II) de atlama yüksekliğini etkileyebileceğinden şüpheleniyor, bu nedenle bu faktörler hakkında da veri topluyor.

Amacı, antrenman programının, cinsiyetin ve bölümün atlama yüksekliğini nasıl etkilediğini belirlemek için üç yönlü bir ANOVA gerçekleştirmektir.

R’de bu üç yönlü ANOVA’yı gerçekleştirmek için aşağıdaki adımları izleyin:

1. Adım: Verileri oluşturun

Öncelikle verileri tutacak bir veri çerçevesi oluşturalım:

 #create dataset
df <- data. frame (program=rep(c(1, 2), each= 20 ),
                 gender=rep(c(' M ', ' F '), each= 10 , times= 2 ),
                 division=rep(c(1, 2), each= 5 , times= 4 ),
                 height=c(7, 7, 8, 8, 7, 6, 6, 5, 6, 5,
                          5, 5, 4, 5, 4, 3, 3, 4, 3, 3,
                          6, 6, 5, 4, 5, 4, 5, 4, 4, 3,
                          2, 2, 1, 4, 4, 2, 1, 1, 2, 1)) 

#view first six rows of dataset
head(df)

  program gender division height
1 1 M 1 7
2 1 M 1 7
3 1 M 1 8
4 1 M 1 8
5 1 M 1 7
6 1 M 2 6

2. Adım: Açıklayıcı istatistikleri görüntüleyin

Üç yönlü ANOVA’yı gerçekleştirmeden önce, antrenman programı, cinsiyet ve bölüme göre gruplandırılmış ortalama atlama yüksekliği artışını hızlı bir şekilde özetlemek için dplyr’i kullanabiliriz:

 library (dplyr)

#calculate mean jumping height increase grouped by program, gender, and division
df %>%
  group_by(program, gender, division) %>%
  summarize(mean_height = mean(height))

# A tibble: 8 x 4
# Groups: program, gender [4]
  program gender division mean_height
                 
1 1 F 1 4.6
2 1 F 2 3.2
3 1 M 1 7.4
4 1 M 2 5.6
5 2 F 1 2.6
6 2 F 2 1.4
7 2 M 1 5.2
8 2 M 2 4  

Sonucun nasıl yorumlanacağı aşağıda açıklanmıştır:

  • Eğitim Programı 1’i kullanan Bölüm I kadınlarının atlama yüksekliğindeki ortalama artış 4,6 inçti .
  • Eğitim Programı 1’i kullanan Bölüm II kadınları arasında atlama yüksekliğindeki ortalama artış 3,2 inçti .
  • Eğitim Programı 1’i kullanan Bölüm I erkekleri arasında atlama yüksekliğindeki ortalama artış 7,4 inçti .

Ve benzeri.

3. Adım: Üç yönlü ANOVA’yı gerçekleştirin

Daha sonra, üç yönlü ANOVA’yı gerçekleştirmek için aov() fonksiyonunu kullanabiliriz:

 #perform three-way ANOVA
model <- aov(height ~ program * gender * division, data=df)

#view summary of three-way ANOVA
summary(model)

                        Df Sum Sq Mean Sq F value Pr(>F)    
program 1 36.1 36.10 65.636 2.98e-09 ***
gender 1 67.6 67.60 122.909 1.71e-12 ***
division 1 19.6 19.60 35.636 1.19e-06 ***
program:gender 1 0.0 0.00 0.000 1.000    
program:division 1 0.4 0.40 0.727 0.400    
gender:division 1 0.1 0.10 0.182 0.673    
program:gender:division 1 0.1 0.10 0.182 0.673    
Residuals 32 17.6 0.55                     
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Pr(>F) sütunu, her bir faktör için p-değerini ve faktörler arasındaki etkileşimleri görüntüler.

Sonuçlardan, üç faktör arasındaki etkileşimlerin hiçbirinin istatistiksel olarak anlamlı olmadığını görebiliriz.

Ayrıca üç faktörün (program, cinsiyet ve bölüm) her birinin istatistiksel olarak anlamlı olduğunu da görebiliyoruz.

Artık program, cinsiyet ve bölüm için ortalama atlama yüksekliği artışını ayrı ayrı bulmak için dplyr’i tekrar kullanabiliriz:

 library (dplyr)

#find mean jumping increase by program
df %>%
  group_by(program) %>%
  summarize(mean_height = mean(height))

# A tibble: 2 x 2
  program mean_height
           
1 1 5.2
2 2 3.3

#find mean jumping increase by gender
df %>%
  group_by(gender) %>%
  summarize(mean_height = mean(height))

# A tibble: 2 x 2
  gender mean_height
          
1 F 2.95
2M 5.55

#find mean jumping increase by division
df %>%
group_by(division) %>%
summarize(mean_height = mean(height))

# A tibble: 2 x 2
  division mean_height
            
1 1 4.95
2 2 3.55

Sonuçtan şunları gözlemleyebiliriz:

  • Antrenman programı 1’i kullanan kişilerin atlama yüksekliğindeki ortalama artış ( 5,2 inç ), antrenman programı 2’yi kullanan kişilerin ortalama artışından (3,3 inç ) daha fazlaydı.
  • Erkeklerin atlama yüksekliğindeki ortalama artış ( 5,55 inç ), kadınların ortalama artışından (2,95 inç ) daha fazlaydı.
  • Klasman 1 oyuncularının atlama yüksekliğindeki ortalama artış ( 4,95 inç ), Klasman 2 oyuncuları arasındaki ortalama artıştan (3,55 inç ) daha fazlaydı.

Sonuç olarak, antrenman programı, cinsiyet ve bölümün, oyunculardaki artan sıçrama yüksekliğinin önemli göstergeleri olduğunu söyleyebiliriz.

Ayrıca bu üç faktör arasında anlamlı bir etkileşim etkisinin olmadığını da söyleyebiliriz.

Ek kaynaklar

Aşağıdaki eğitimlerde diğer ANOVA modellerinin R’ye nasıl sığdırılacağı açıklanmaktadır:

R’de tek yönlü ANOVA nasıl gerçekleştirilir
R’de iki yönlü ANOVA nasıl gerçekleştirilir

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir