Cara melakukan anova tiga arah di r


ANOVA tiga arah digunakan untuk menentukan ada atau tidaknya perbedaan yang signifikan secara statistik antara rata-rata tiga atau lebih kelompok independen yang tersebar pada tiga faktor.

Contoh berikut menunjukkan cara melakukan ANOVA tiga arah di R.

Contoh: ANOVA tiga arah di R

Misalkan seorang peneliti ingin menentukan apakah dua program pelatihan menghasilkan peningkatan rata-rata yang berbeda dalam tinggi lompatan di antara pemain bola basket perguruan tinggi.

Peneliti menduga bahwa jenis kelamin dan pembagian (Divisi I atau II) juga dapat mempengaruhi tinggi lompatan, oleh karena itu ia juga mengumpulkan data mengenai faktor-faktor tersebut.

Tujuannya adalah melakukan ANOVA tiga arah untuk menentukan bagaimana program pelatihan, jenis kelamin, dan pembagian mempengaruhi tinggi lompatan.

Ikuti langkah-langkah berikut untuk melakukan ANOVA tiga arah ini di R:

Langkah 1: Buat datanya

Pertama, mari buat bingkai data untuk menampung data:

 #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

Langkah 2: Lihat statistik deskriptif

Sebelum melakukan ANOVA tiga arah, kita dapat menggunakan dplyr untuk dengan cepat merangkum rata-rata peningkatan tinggi lompatan yang dikelompokkan berdasarkan program pelatihan, jenis kelamin, dan divisi:

 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  

Berikut cara menafsirkan hasilnya:

  • Rata-rata peningkatan tinggi lompatan putri Divisi I yang menggunakan Program Latihan 1 adalah 4,6 inci .
  • Rata-rata peningkatan tinggi lompatan putri Divisi II yang menggunakan Program Latihan 1 adalah 3,2 inci .
  • Rata-rata peningkatan tinggi lompatan putra Divisi I yang menggunakan Program Latihan 1 adalah 7,4 inci .

Dan seterusnya.

Langkah 3: Lakukan ANOVA tiga arah

Selanjutnya, kita dapat menggunakan fungsi aov() untuk melakukan ANOVA tiga arah:

 #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

Kolom Pr(>F) menampilkan nilai p untuk masing-masing faktor dan interaksi antar faktor.

Dari hasil tersebut, kita dapat melihat bahwa tidak ada interaksi antara ketiga faktor tersebut yang signifikan secara statistik.

Kita juga dapat melihat bahwa ketiga faktor tersebut – program, gender dan pembagian – signifikan secara statistik.

Sekarang kita dapat menggunakan dplyr lagi untuk mencari rata-rata peningkatan tinggi lompatan untuk program, gender, dan divisi secara terpisah:

 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

Dari hasilnya kita dapat mengamati hal-hal berikut:

  • Rata-rata peningkatan tinggi lompatan individu yang menggunakan program latihan 1 ( 5,2 inci ) lebih besar dibandingkan dengan rata-rata peningkatan tinggi lompatan individu yang menggunakan program latihan 2 (3,3 inci ).
  • Rata-rata peningkatan tinggi lompatan pria ( 5,55 inci ) lebih besar dibandingkan rata-rata peningkatan tinggi lompatan wanita (2,95 inci ).
  • Rata-rata peningkatan tinggi lompatan pemain Divisi 1 ( 4,95 inci ) lebih besar dibandingkan rata-rata peningkatan tinggi lompatan pemain Divisi 2 (3,55 inci ).

Sebagai kesimpulan, kami dapat mengatakan bahwa program pelatihan, gender, dan pembagian merupakan indikator signifikan peningkatan tinggi lompatan pemain.

Kami juga dapat mengatakan bahwa tidak ada efek interaksi yang signifikan antara ketiga faktor ini.

Sumber daya tambahan

Tutorial berikut menjelaskan cara menyesuaikan model ANOVA lainnya di R:

Bagaimana melakukan ANOVA satu arah di R
Cara melakukan ANOVA dua arah di R

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *