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.

Interpretasi uji ANOVA

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.

Interpretasi uji ANOVA

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:

Contoh Uji ANOVA Satu Arah

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:

Perbandingan berpasangan

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