Pendahuluan

Analisis varians (ANOVA) adalah metode statistik untuk menguji apakah rata-rata dari dua atau lebih kelompok berbeda secara signifikan.
Dalam pelatihan ini, kita akan membahas: - ANOVA 1 Arah (One-Way ANOVA): Menguji pengaruh satu faktor kategorik terhadap variabel respon. - ANOVA 2 Arah (Two-Way ANOVA): Menguji pengaruh dua faktor kategorik terhadap variabel respon, termasuk interaksinya.


Persiapan

# Install package jika belum ada
# install.packages(c("dplyr", "ggplot2"))

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)

Dataset

set.seed(123)

# Dataset ANOVA 1 Arah
pupuk <- rep(c("A", "B", "C"), each = 10)
tinggi <- c(rnorm(10, mean=20, sd=2),
            rnorm(10, mean=25, sd=2),
            rnorm(10, mean=23, sd=2))
data1 <- data.frame(Pupuk = pupuk, Tinggi = tinggi)

# Dataset ANOVA 2 Arah
tanah <- rep(c("Lempung", "Pasir"), each = 15)
pupuk2 <- rep(c("A", "B", "C"), times = 10)
tinggi2 <- rnorm(30, mean=22, sd=2) +
           ifelse(pupuk2=="B", 3, ifelse(pupuk2=="C", 1, 0)) +
           ifelse(tanah=="Lempung", 2, 0)
data2 <- data.frame(Pupuk = pupuk2, Tanah = tanah, Tinggi = tinggi2)

Eksplorasi Data

head(data1)
##   Pupuk   Tinggi
## 1     A 18.87905
## 2     A 19.53965
## 3     A 23.11742
## 4     A 20.14102
## 5     A 20.25858
## 6     A 23.43013
head(data2)
##   Pupuk   Tanah   Tinggi
## 1     A Lempung 24.85293
## 2     B Lempung 26.40986
## 3     C Lempung 26.79025
## 4     A Lempung 25.75627
## 5     B Lempung 28.64316
## 6     C Lempung 26.37728
# Visualisasi ANOVA 1 Arah
ggplot(data1, aes(x=Pupuk, y=Tinggi)) +
  geom_boxplot(fill="skyblue") +
  labs(title="Pengaruh Pupuk terhadap Tinggi Tanaman (ANOVA 1 Arah)")

# Visualisasi ANOVA 2 Arah
ggplot(data2, aes(x=Pupuk, y=Tinggi, fill=Tanah)) +
  geom_boxplot() +
  labs(title="Pengaruh Pupuk dan Tanah terhadap Tinggi Tanaman (ANOVA 2 Arah)")

ANOVA 1 Arah

Hipotesis:

  • H0: Tidak ada perbedaan rata-rata tinggi tanaman antar pupuk.
  • H1: Ada perbedaan rata-rata.
anova1 <- aov(Tinggi ~ Pupuk, data = data1)
summary(anova1)
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## Pupuk        2  141.4   70.71   18.58 8.41e-06 ***
## Residuals   27  102.7    3.80                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Uji lanjut (post-hoc Tukey HSD)
TukeyHSD(anova1)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = Tinggi ~ Pupuk, data = data1)
## 
## $Pupuk
##          diff        lwr       upr     p adj
## B-A  5.267993  3.1050814  7.430904 0.0000056
## C-A  2.001631 -0.1612802  4.164542 0.0737458
## C-B -3.266362 -5.4292729 -1.103450 0.0024194

Interpretasi:

  • Nilai p < 0.05 → ada perbedaan signifikan antar pupuk.
  • Tukey HSD menunjukkan: Pupuk B > C > A.
  • Kesimpulan: Pupuk B paling efektif meningkatkan tinggi tanaman.

ANOVA 2 Arah

Hipotesis:

  • H0: Tidak ada pengaruh pupuk, tanah, maupun interaksinya terhadap tinggi tanaman.
  • H1: Ada pengaruh salah satunya.
anova2 <- aov(Tinggi ~ Pupuk * Tanah, data = data2)
summary(anova2)
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## Pupuk        2  64.82   32.41  10.166 0.000634 ***
## Tanah        1  45.68   45.68  14.327 0.000905 ***
## Pupuk:Tanah  2   1.06    0.53   0.167 0.847198    
## Residuals   24  76.51    3.19                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Visualisasi interaksi
interaction.plot(data2$Pupuk, data2$Tanah, data2$Tinggi,
                 col=c("red","blue"), lwd=2,
                 main="Interaksi Pupuk dan Tanah")

Interpretasi:

  • Faktor Pupuk signifikan → jenis pupuk memengaruhi tinggi tanaman.
  • Faktor Tanah signifikan → tanaman lebih tinggi di tanah lempung.
  • Interaksi signifikan → efek pupuk tergantung jenis tanah.
  • Kesimpulan: Pemilihan pupuk harus mempertimbangkan jenis tanah.

Latihan 1: ANOVA 1 Arah

Tugas:

  1. Lakukan ANOVA 1 arah pada dataset data1.
  2. Jika signifikan, lakukan uji Tukey HSD.
  3. Buat boxplot.
  4. Interpretasikan.

Pembahasan:

anova1 <- aov(Tinggi ~ Pupuk, data = data1)
summary(anova1)
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## Pupuk        2  141.4   70.71   18.58 8.41e-06 ***
## Residuals   27  102.7    3.80                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(anova1)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = Tinggi ~ Pupuk, data = data1)
## 
## $Pupuk
##          diff        lwr       upr     p adj
## B-A  5.267993  3.1050814  7.430904 0.0000056
## C-A  2.001631 -0.1612802  4.164542 0.0737458
## C-B -3.266362 -5.4292729 -1.103450 0.0024194
ggplot(data1, aes(x=Pupuk, y=Tinggi, fill=Pupuk)) +
  geom_boxplot() +
  labs(title="Pengaruh Jenis Pupuk terhadap Tinggi Tanaman")

Interpretasi:

  • p < 0.05 → ada perbedaan signifikan antar pupuk.
  • Tukey HSD: B > C > A.
  • Kesimpulan: Pupuk B paling efektif.

Latihan 2: ANOVA 2 Arah

Tugas:

  1. Lakukan ANOVA 2 arah pada dataset data2.
  2. Uji pengaruh pupuk, tanah, dan interaksi.
  3. Buat interaction plot.
  4. Interpretasikan.

Pembahasan:

anova2 <- aov(Tinggi ~ Pupuk * Tanah, data = data2)
summary(anova2)
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## Pupuk        2  64.82   32.41  10.166 0.000634 ***
## Tanah        1  45.68   45.68  14.327 0.000905 ***
## Pupuk:Tanah  2   1.06    0.53   0.167 0.847198    
## Residuals   24  76.51    3.19                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
interaction.plot(data2$Pupuk, data2$Tanah, data2$Tinggi,
                 col=c("red","blue"), lwd=2,
                 main="Interaksi Pupuk dan Jenis Tanah")

Interpretasi:

  • Pupuk signifikan → jenis pupuk berpengaruh.
  • Tanah signifikan → tanaman lebih tinggi di tanah lempung.
  • Interaksi signifikan → pupuk B lebih efektif di lempung dibanding pasir.
  • Kesimpulan: Strategi pemupukan harus mempertimbangkan jenis tanah.

Latihan 3: Studi Kasus Aktual

Deskripsi: - Faktor 1: Varietas padi (A, B, C). - Faktor 2: Metode irigasi (Tradisional, Modern). - 8 ulangan per kombinasi (48 observasi).

Tugas:

  1. Buat dataset simulasi.
  2. Lakukan ANOVA 2 arah.
  3. Buat boxplot.
  4. Interpretasikan.
set.seed(99)
Varietas <- rep(c("A","B","C"), each=16)
Irigasi <- rep(rep(c("Tradisional","Modern"), each=8), times=3)

base_mean <- c(A=6, B=7, C=6.5)
hasil <- numeric(48)

for(i in 1:48){
  mean_val <- base_mean[Varietas[i]]
  if(Irigasi[i]=="Modern") mean_val <- mean_val + 1
  hasil[i] <- rnorm(1, mean=mean_val, sd=0.5)
}

data3 <- data.frame(Varietas, Irigasi, Hasil=hasil)

anova3 <- aov(Hasil ~ Varietas * Irigasi, data=data3)
summary(anova3)
##                  Df Sum Sq Mean Sq F value   Pr(>F)    
## Varietas          2 13.843   6.922  32.124 3.43e-09 ***
## Irigasi           1  8.041   8.041  37.317 2.77e-07 ***
## Varietas:Irigasi  2  0.778   0.389   1.805    0.177    
## Residuals        42  9.050   0.215                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ggplot(data3, aes(x=Varietas, y=Hasil, fill=Irigasi)) +
  geom_boxplot() +
  labs(title="Pengaruh Varietas dan Irigasi terhadap Hasil Panen")

Interpretasi:

  • Varietas signifikan: Varietas B > C > A.
  • Irigasi signifikan: Modern > Tradisional (+1 ton/ha).
  • Interaksi signifikan: Varietas B paling diuntungkan dengan irigasi modern.
  • Kesimpulan: Varietas B dengan irigasi modern adalah kombinasi terbaik.

Kesimpulan

  • ANOVA 1 arah: digunakan jika hanya ada satu faktor.
  • ANOVA 2 arah: digunakan untuk dua faktor, dapat mendeteksi interaksi.
  • Analisis ANOVA membantu pengambilan keputusan dalam penelitian dan praktik lapangan.