Tutorial R ANOVA: Satu arah & Dua arah (dengan contoh)
Apa itu ANOVA?
Analisis Varians (ANOVA) adalah teknik statistik, yang umumnya digunakan untuk mempelajari perbedaan antara dua atau lebih rata-rata kelompok. Uji ANOVA berpusat pada berbagai sumber variasi dalam variabel yang umum. ANOVA dalam R terutama memberikan bukti adanya persamaan rata-rata antara kelompok. Metode statistik ini merupakan perluasan dari uji-t. Metode ini digunakan dalam situasi di mana variabel faktor memiliki lebih dari satu kelompok.
ANOVA satu arah
Ada banyak situasi di mana Anda perlu membandingkan mean antara beberapa kelompok. Misalnya, departemen pemasaran ingin mengetahui apakah tiga tim memiliki kinerja penjualan yang sama.
- Tim: 3 faktor level: A, B, dan C
- Penjualan: Ukuran kinerja
Uji ANOVA dapat mengetahui apakah ketiga kelompok memiliki kinerja yang serupa.
Untuk memperjelas apakah data tersebut berasal dari populasi yang sama, Anda dapat melakukan a analisis varians satu arah (anova satu arah). Uji ini, seperti uji statistik lainnya, memberikan bukti apakah hipotesis H0 dapat diterima atau ditolak.
Hipotesis dalam uji ANOVA satu arah
- H0: Rata-rata antar kelompok adalah sama
- H3 : Paling tidak mean satu kelompok berbeda-beda
Dengan kata lain, hipotesis H0 menyiratkan bahwa tidak ada cukup bukti untuk membuktikan mean suatu kelompok (faktor) berbeda dengan yang lain.
Uji ini mirip dengan uji-t, meskipun uji ANOVA direkomendasikan dalam situasi dengan lebih dari 2 kelompok. Kecuali itu, uji-t dan ANOVA memberikan hasil yang serupa.
Asumsi
Kami berasumsi bahwa setiap faktor diambil sampelnya secara acak, independen, dan berasal dari populasi yang terdistribusi normal dengan variansi yang tidak diketahui tetapi sama.
Interpretasi uji ANOVA
Statistik F digunakan untuk menguji apakah data berasal dari populasi yang berbeda secara signifikan, yaitu mean sampel yang berbeda.
Untuk menghitung statistik F, Anda perlu membaginya variabilitas antar kelompok atas variabilitas dalam kelompok.
antar kelompok variabilitas mencerminkan perbedaan antar kelompok dalam seluruh populasi. Perhatikan dua grafik di bawah ini untuk memahami konsep varians antar kelompok.
Grafik sebelah kiri menunjukkan variasi yang sangat kecil di antara ketiga kelompok tersebut, dan sangat mungkin bahwa ketiga rata-rata tersebut cenderung ke arah tersebut secara keseluruhan mean (yaitu, mean untuk ketiga kelompok).
Grafik sebelah kanan memplot tiga distribusi yang berjauhan, dan tidak ada satupun yang tumpang tindih. Ada kemungkinan besar perbedaan antara rata-rata total dan rata-rata kelompok akan besar.
dalam kelompok variabilitas mempertimbangkan perbedaan antar kelompok. Variasi tersebut berasal dari pengamatan individu; beberapa poin mungkin benar-benar berbeda dari arti kelompok. Itu dalam kelompok variabilitas mengambil efek ini dan merujuk pada kesalahan pengambilan sampel.
Untuk memahami secara visual konsep variabilitas dalam kelompok, lihat grafik di bawah ini.
Bagian kiri menggambarkan distribusi tiga kelompok berbeda. Anda meningkatkan penyebaran setiap sampel dan jelas bahwa varians individualnya besar. Uji F akan menurun artinya Anda cenderung menerima hipotesis nol
Bagian kanan menunjukkan sampel yang sama persis (rata-rata identik) tetapi dengan variabilitas lebih rendah. Hal ini menyebabkan peningkatan uji F dan cenderung mendukung hipotesis alternatif.
Anda dapat menggunakan kedua ukuran tersebut untuk membangun statistik-F. Sangat intuitif untuk memahami F-statistik. Jika pembilangnya bertambah, berarti variabilitas antar kelompok tinggi, dan kemungkinan besar kelompok-kelompok dalam sampel diambil dari distribusi yang sama sekali berbeda.
Dengan kata lain, statistik F yang rendah menunjukkan sedikit atau tidak ada perbedaan yang signifikan antara rata-rata kelompok.
Contoh Uji ANOVA Satu Arah
Anda akan menggunakan kumpulan data racun untuk menerapkan uji ANOVA satu arah. Kumpulan data tersebut berisi 48 baris dan 3 variabel:
- Waktu: Waktu kelangsungan hidup hewan
- racun: Jenis racun yang digunakan: tingkat faktor: 1,2 dan 3
- perlakuan: Jenis pengobatan yang digunakan: tingkat faktor: 1,2 dan 3
Sebelum Anda mulai menghitung uji ANOVA, Anda perlu menyiapkan data sebagai berikut:
- Langkah 1: Impor data
- Langkah 2: Hapus variabel yang tidak perlu
- Langkah 3: Ubah variabel racun menjadi level yang dipesan
library(dplyr) PATH <- "https://raw.githubusercontent.com/guru99-edu/R-Programming/master/poisons.csv" df <- read.csv(PATH) %>% select(-X) %>% mutate(poison = factor(poison, ordered = TRUE)) glimpse(df)
Keluaran:
## Observations: 48 ## Variables: 3 ## $ time <dbl> 0.31, 0.45, 0.46, 0.43, 0.36, 0.29, 0.40, 0.23, 0.22, 0... ## $ poison <ord> 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 1, 1, 2, 2, 2... ## $ treat <fctr> A, A, A, A, A, A, A, A, A, A, A, A, B, B, B, B, B, B, ...
Tujuan kami adalah untuk menguji asumsi berikut:
- H0: Tidak ada perbedaan rata-rata waktu bertahan hidup antar kelompok
- H3: Rata-rata waktu bertahan hidup berbeda untuk setidaknya satu kelompok.
Dengan kata lain, Anda ingin mengetahui apakah terdapat perbedaan statistik antara rata-rata waktu bertahan hidup menurut jenis racun yang diberikan kepada babi Guinea.
Anda akan melanjutkan sebagai berikut:
- Langkah 1: Periksa format racun variabel
- Langkah 2: Cetak ringkasan statistik: hitungan, mean, dan deviasi standar
- Langkah 3: Buat diagram kotak
- Langkah 4: Hitung uji ANOVA satu arah
- Langkah 5: Jalankan uji t berpasangan
Langkah 1) Anda dapat memeriksa tingkat racun dengan kode berikut. Anda akan melihat tiga nilai karakter karena Anda mengonversinya dalam faktor dengan kata kerja mutate.
levels(df$poison)
Keluaran:
## [1] "1" "2" "3"
Langkah 2) Anda menghitung mean dan deviasi standar.
df % > % group_by(poison) % > % summarise( count_poison = n(), mean_time = mean(time, na.rm = TRUE), sd_time = sd(time, na.rm = TRUE) )
Keluaran:
## # A tibble: 3 x 4 ## poison count_poison mean_time sd_time ## <ord> <int> <dbl> <dbl> ## 1 1 16 0.617500 0.20942779 ## 2 2 16 0.544375 0.28936641 ## 3 3 16 0.276250 0.06227627
Langkah 3) Pada langkah ketiga, Anda dapat memeriksa secara grafis apakah ada perbedaan antara distribusi. Perhatikan bahwa Anda menyertakan titik yang gelisah.
ggplot(df, aes(x = poison, y = time, fill = poison)) + geom_boxplot() + geom_jitter(shape = 15, color = "steelblue", position = position_jitter(0.21)) + theme_classic()
Keluaran:
Langkah 4) Anda dapat menjalankan uji ANOVA satu arah dengan perintah aov. Sintaks dasar untuk uji ANOVA adalah:
aov(formula, data) Arguments: - formula: The equation you want to estimate - data: The dataset used
Sintaks rumusnya adalah:
y ~ X1+ X2+...+Xn # X1 + X2 +... refers to the independent variables y ~ . # use all the remaining variables as independent variables
Anda dapat menjawab pertanyaan kami: Apakah ada perbedaan waktu bertahan hidup antara kelinci percobaan, dengan mengetahui jenis racun yang diberikan.
Perhatikan bahwa, disarankan untuk menyimpan model dan menggunakan fungsi ringkasan() untuk mendapatkan hasil yang lebih baik.
anova_one_way <- aov(time~poison, data = df) summary(anova_one_way)
Penjelasan Kode
- aov(waktu ~ racun, data = df): Jalankan uji ANOVA dengan rumus berikut
- ringkasan(anova_one_way): Cetak ringkasan pengujian
Keluaran:
## Df Sum Sq Mean Sq F value Pr(>F) ## poison 2 1.033 0.5165 11.79 7.66e-05 *** ## Residuals 45 1.972 0.0438 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Nilai p lebih rendah dari ambang batas biasanya yaitu 0.05. Anda yakin untuk mengatakan bahwa ada perbedaan statistik antar kelompok, yang ditunjukkan dengan tanda “*”.
Perbandingan berpasangan
Uji ANOVA satu arah tidak menginformasikan kelompok mana yang memiliki nilai rata-rata berbeda. Sebagai gantinya, Anda dapat melakukan uji Tukey dengan fungsi TukeyHSD().
TukeyHSD(anova_one_way)
Keluaran:
ANOVA dua arah
Uji ANOVA dua arah menambahkan variabel kelompok lain ke dalam rumus. Uji ini identik dengan uji ANOVA satu arah, meskipun rumusnya sedikit berubah:
kamu=x1+x2
dengan merupakan variabel kuantitatif dan dan merupakan variabel kategori.
Hipotesis dalam uji ANOVA dua arah
- H0: Rata-rata kedua variabel sama (yaitu variabel faktor)
- H3: Rata-rata kedua variabel berbeda
Anda menambahkan variabel suguhan ke model kami. Variabel ini menunjukkan perlakuan yang diberikan pada kelinci percobaan. Anda tertarik untuk melihat apakah ada ketergantungan statistik antara racun dan pengobatan yang diberikan pada babi Guinea.
Kami menyesuaikan kode kami dengan menambahkan suguhan dengan variabel independen lainnya.
anova_two_way <- aov(time~poison + treat, data = df) summary(anova_two_way)
Keluaran:
## Df Sum Sq Mean Sq F value Pr(>F) ## poison 2 1.0330 0.5165 20.64 5.7e-07 *** ## treat 3 0.9212 0.3071 12.27 6.7e-06 *** ## Residuals 42 1.0509 0.0250 ## ---
Anda dapat menyimpulkan bahwa racun dan pengobatan secara statistik berbeda dari 0. Anda dapat menolak hipotesis NULL dan mengonfirmasi bahwa mengubah pengobatan atau racun berdampak pada waktu bertahan hidup.
Ringkasan
Kita dapat meringkas pengujian tersebut pada tabel di bawah ini:
uji | Kode | Hipotesa | Nilai p |
---|---|---|---|
ANOVA satu arah |
aov(y ~ X, data = df) |
H3: Rata-rata berbeda untuk setidaknya satu kelompok | 0.05 |
Berpasangan |
TukeyHSD(ANOVA summary) |
0.05 | |
ANOVA dua arah |
aov(y ~ X1 + X2, data = df) |
H3: Rata-rata berbeda untuk kedua kelompok | 0.05 |