1. Hitung rata-rata per perlakuan
Misalkan terdapat \(k\) perlakuan dengan ulangan \(r_i\) untuk grup \(i\), dan \(\bar{Y}_i\) adalah rata-rata perlakuan \(i\).
2. Hitung MSE (Mean Squared Error)
Varians dalam grup dihitung dari ANOVA sebagai MSE (Mean Squared Error), yaitu:
di mana \(SSE\) adalah jumlah kuadrat kesalahan, dan \(N\) adalah total jumlah observasi.
3. Hitung BNJ/HSD/Tukey
Untuk setiap pasangan grup \((i,j)\), hitung perbedaan rata-rata:
Hitung nilai BNJ/HSD/Tukey
dimana \(q_{\alpha,k,db_{erorr}}\) dalah kuantil distribusi Tukey dengan k grup dan derajat kebebasan kesalahan \(db_{erorr}\), sera \(r\) perlakuan
4. Bandingkan Perbedaan Rataan dengan BNJ
Untuk setiap pasangan grup, bandingkan nilai mutlak dari perbedaan rata-rata dengan nilai HSD. Jika
maka perbedaan rata-rata tersebut signifikan.
## Blok A B C D
## 1 2 5 8 6
## 2 3 4 7 5
## 3 3 5 10 5
## 4 5 5 9 2
# Mengubah data ke format long agar dapat dianalisis ANOVA
library(tidyr)
data_RAK <- pivot_longer(data_RAK1,
cols = A:D,
names_to = "Perlakuan",
values_to = "Nilai")
# Menampilkan data frame
data_RAK## # A tibble: 16 × 3
## Blok Perlakuan Nilai
## <int> <chr> <dbl>
## 1 1 A 2
## 2 1 B 5
## 3 1 C 8
## 4 1 D 6
## 5 2 A 3
## 6 2 B 4
## 7 2 C 7
## 8 2 D 5
## 9 3 A 3
## 10 3 B 5
## 11 3 C 10
## 12 3 D 5
## 13 4 A 5
## 14 4 B 5
## 15 4 C 9
## 16 4 D 2
# Langkah 1: Hitung rata-rata grup per perlakuan
mean_perlakuan <- aggregate(Nilai ~ Perlakuan, data = data_RAK, FUN = mean)
names(mean_perlakuan)[2] <- "mean_Yi"
mean_perlakuan## Perlakuan mean_Yi
## 1 A 3.25
## 2 B 4.75
## 3 C 8.50
## 4 D 4.50
#Langkah 2: Hitung MSE (Mean Squared Error) dari hasil ANOVA
anova_result <- aov(Nilai ~ Perlakuan + factor(Blok), data = data_RAK)
mse <- summary(anova_result)[[1]]["Residuals", "Mean Sq"]
cat("mse=",mse,"\n")## mse= 1.944444
# Langkah 3: Hitung perbedaan rataan dari setiap pasangan perlakuan dan Nilai BNJ/HSD/Tukey
perbedaan_antar_pasangan <- combn(mean_perlakuan$mean_Yi, 2, function(x) abs(diff(x)))
pasangan <- combn(mean_perlakuan$Perlakuan, 2, paste, collapse = "-")
# Jumlah perlakuan (k) dan derajat kebebasan residual
k <- length(unique(data_RAK$Perlakuan)) # jumlah perlakuan
df_error <- summary(anova_result)[[1]]["Residuals", "Df"] # df residuals
cat("k=",k,"\n")## k= 4
## df= 9
## q= 4.41489
# Hitung BNJ/HSD/Tukey
n <- length(unique(data_RAK$Blok))
BNJ <- q * sqrt(mse / n)
cat("BNJ=",BNJ,"\n")## BNJ= 3.078135
# Langkah 4: Bandingkan perbedaan rata-rata dengan HSD dan buat kesimpulan
kesimpulan <- ifelse(perbedaan_antar_pasangan > BNJ, "Berbeda Signifikan", "Berbeda Tidak Signifikan")
# Membuat data frame dengan format long, kali ini dengan nama kolom yang benar
hasil_tukey <- data.frame(
Pasangan = pasangan,
PerbedaanRataan = perbedaan_antar_pasangan,
BNJ = BNJ,
Kesimpulan = kesimpulan
)
# Menampilkan hasil
print(hasil_tukey)## Pasangan PerbedaanRataan BNJ Kesimpulan
## 1 A-B 1.50 3.078135 Berbeda Tidak Signifikan
## 2 A-C 5.25 3.078135 Berbeda Signifikan
## 3 A-D 1.25 3.078135 Berbeda Tidak Signifikan
## 4 B-C 3.75 3.078135 Berbeda Signifikan
## 5 B-D 0.25 3.078135 Berbeda Tidak Signifikan
## 6 C-D 4.00 3.078135 Berbeda Signifikan
Interpretasi hasil Uji Tukey
Setelah analisis ANOVA didapatkan kesimpulan bahwa
Terdapat perbedaan yang signifikan atara campuran makanan (A,B,C,D) terhadap pertambahan bobot domba jantan.
Tidak cukup bukti untuk menunjukan bahwa terdapat perbedaan yang signifikan antara 4 kelompok umur terhadap pertambahan bobot domba jantan.
ANOVA hanya memberi tahu kita apakah ada perbedaan yang signifikan antara setidaknya dua perlakuan, tetapi tidak memberi tahu kita pasangan perlakuan mana yang berbeda secara spesifik.Dengan Uji Tukey akan dilihat pasangan mana yang berbeda signifikan. jika \(|PerbedaanRataan|>BNJ\) maka pasangan campuran makanan tersebut berbeda signifikan terhadap pertambahan bobot domba jantan.Pasangan campuran makanan yang berbeda signifikan terhadap pertambahan bobot domba jantan adalah A-C, B-C, C-D.
Kode R diatas adalah perhitungan manual untuk melihat signifikansi perbedaan pasangan campuran makanan terhadap pertambahan bobot domba jantan. berikut jika menggunakan fungsi yang tersedia di R dan informasinya lebih lengkap.
## Df Sum Sq Mean Sq F value Pr(>F)
## Perlakuan 3 61.5 20.500 10.543 0.00265 **
## factor(Blok) 3 2.0 0.667 0.343 0.79516
## Residuals 9 17.5 1.944
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = Nilai ~ Perlakuan + factor(Blok), data = data_RAK)
##
## $Perlakuan
## diff lwr upr p adj
## B-A 1.50 -1.5781351 4.5781351 0.4647911
## C-A 5.25 2.1718649 8.3281351 0.0021982
## D-A 1.25 -1.8281351 4.3281351 0.6034593
## C-B 3.75 0.6718649 6.8281351 0.0180901
## D-B -0.25 -3.3281351 2.8281351 0.9938719
## D-C -4.00 -7.0781351 -0.9218649 0.0125000
##
## $`factor(Blok)`
## diff lwr upr p adj
## 2-1 -5.000000e-01 -3.578135 2.578135 0.9553419
## 3-1 5.000000e-01 -2.578135 3.578135 0.9553419
## 4-1 8.881784e-16 -3.078135 3.078135 1.0000000
## 3-2 1.000000e+00 -2.078135 4.078135 0.7456835
## 4-2 5.000000e-01 -2.578135 3.578135 0.9553419
## 4-3 -5.000000e-01 -3.578135 2.578135 0.9553419
Interpretasi dari kolom P adj
nilai p tersebut digunakan untuk melihat pasangan campuran makanan mana yang berbeda secara signifikan, jika \(p<0.05\) maka berbeda signifikan. dari ouput tersebut didapatkan pasangan campuran makanan yang berbeda signifikan adalah
C-A dengan \(p_{adj}=0.0022\), Campuran makanan C dan A rata-rata pertambahan bobot badan domba jantan berbeda secara signifikan
C-B dengan \(p_{adj}=0.018\), Campuran makanan C dan B rata-rata pertambahan bobot badan domba jantan berbeda secara signifikan
D-C dengan \(p_{adj}=0.013\), Campuran makanan D dan C rata-rata pertambahan bobot badan domba jantan berbeda secara signifikan
Interpretasi dari kolom diff:
C-A: campuran makanan C memberikan rata-rata pertambahan bobot badan domba jantan lebih banyak sebesar 5.25 kg dibandingkan jika diberikan campuran makanan A
C-B: campuran makanan C memberikan rata-rata pertambahan bobot badan domba jantan lebih banyak sebesar 3.75 kg dibandingkan jika diberikan campuran makanan B
D-C: campuran makanan D memberikan rata-rata pertambahan bobot badan domba jantan lebih kecil sebesar 4 kg dibandingkan jika diberikan campuran makanan C
B-A: campuran makanan B memberikan rata-rata pertambahan bobot badan domba jantan lebih banyak sebesar 1.50 kg dibandingkan jika diberikan campuran makanan A
D-A: campuran makanan D memberikan rata-rata pertambahan bobot badan domba jantan lebih banyak sebesar 1.25 kg dibandingkan jika diberikan campuran makanan A
D-B: campuran makanan D memberikan rata-rata pertambahan bobot badan domba jantan lebih kecil sebesar 0.25 kg dibandingkan jika diberikan campuran makanan B
Berdasarkan hal tersebut urutan yang memberikan rata-rata pertambahan bobot badan domba jantan paling besar adalah C>B>D>A (ini bisa dilihat dari rata-rata pada masing - masing campuran makanan terhadap semua kelompok umur)
Interpretasi dari kolom lwr dan upr:
C-A: bahwa perbedaan rata-rata antara kelompok C dan A berada di antara 2.17 dan 8.33
C-B: bahwa perbedaan rata-rata antara kelompok C dan B berada di antara 0.67 dan 6.83
D-C: bahwa perbedaan rata-rata antara kelompok D dan C berada di antara -7.07 dan -0.92
B-A: bahwa perbedaan rata-rata antara kelompok B dan A berada di antara -1.58 dan 4.58
D-A: bahwa perbedaan rata-rata antara kelompok D dan A berada di antara -1.83 dan 4.33
D-B: bahwa perbedaan rata-rata antara kelompok D dan B berada di antara -3.33 dan 2.83
Suatu percobaan dilakukan untuk mengetahui pengaruh jenis pupuk terhadap hasil tanaman jagung perminggu. Terdapat 5 jenis pupuk yaitu, pupuk A, B, C, D, dan E, sedangkan Hasil jagung dihitung per kilogram. Rancangan yang digunakan adalah Rancangan Acak Lengkap. Setelah dilakukan percobaan didapatkan data sebagai berikut:
## Pupuk Minggu1 Minggu2 Minggu3 Minggu4 Minggu5
## 1 A 33 34 35 34 33
## 2 B 17 18 19 20 17
## 3 C 19 24 22 23 30
## 4 D 20 25 25 28 24
## 5 E 25 26 24 28 22
library(tidyr)
# Mengubah data ke format long agar dapat dianalisis ANOVA
data_RAL <- pivot_longer(data_RAL1,
cols = starts_with("Minggu"),
names_to = "Minggu",
values_to = "Nilai")
# Pastikan variabel Dosis menjadi faktor
#data_RAL$Pupuk <- as.factor(data_RAL$Pupuk)
data_RAL## # A tibble: 25 × 3
## Pupuk Minggu Nilai
## <chr> <chr> <dbl>
## 1 A Minggu1 33
## 2 A Minggu2 34
## 3 A Minggu3 35
## 4 A Minggu4 34
## 5 A Minggu5 33
## 6 B Minggu1 17
## 7 B Minggu2 18
## 8 B Minggu3 19
## 9 B Minggu4 20
## 10 B Minggu5 17
## # ℹ 15 more rows
# Langkah 1: Hitung rata-rata grup per perlakuan
mean_perlakuan <- aggregate(Nilai ~ Pupuk, data = data_RAL, FUN = mean)
names(mean_perlakuan)[2] <- "mean_Yi"
mean_perlakuan## Pupuk mean_Yi
## 1 A 33.8
## 2 B 18.2
## 3 C 23.6
## 4 D 24.4
## 5 E 25.0
#Langkah 2: Hitung MSE (Mean Squared Error) dari hasil ANOVA
anova_result <- aov(Nilai ~ Pupuk, data = data_RAL)
mse <- summary(anova_result)[[1]]["Residuals", "Mean Sq"]
cat("mse=",mse,"\n")## mse= 6.4
# Langkah 3: Hitung perbedaan rataan dari setiap pasangan perlakuan dan Nilai BNJ/HSD/Tukey
perbedaan_antar_pasangan <- combn(mean_perlakuan$mean_Yi, 2, function(x) abs(diff(x)))
pasangan <- combn(mean_perlakuan$Pupuk, 2, paste, collapse = "-")
# Jumlah perlakuan (k) dan derajat kebebasan residual
k <- length(unique(data_RAL$Pupuk)) # jumlah perlakuan
df_error <- summary(anova_result)[[1]]["Residuals", "Df"] # df residuals
cat("k=",k,"\n")## k= 5
## df= 20
## q= 4.231857
# Hitung BNJ/HSD/Tukey
n <- length(unique(data_RAL$Minggu))
BNJ <- q * sqrt(mse / n)
cat("BNJ=",BNJ,"\n")## BNJ= 4.787799
# Langkah 4: Bandingkan perbedaan rata-rata dengan HSD dan buat kesimpulan
kesimpulan <- ifelse(perbedaan_antar_pasangan > BNJ, "Berbeda Signifikan", "Berbeda Tidak Signifikan")
# Membuat data frame dengan format long, kali ini dengan nama kolom yang benar
hasil_tukey <- data.frame(
Pasangan = pasangan,
PerbedaanRataan = perbedaan_antar_pasangan,
BNJ = BNJ,
Kesimpulan = kesimpulan
)
# Menampilkan hasil
print(hasil_tukey)## Pasangan PerbedaanRataan BNJ Kesimpulan
## 1 A-B 15.6 4.787799 Berbeda Signifikan
## 2 A-C 10.2 4.787799 Berbeda Signifikan
## 3 A-D 9.4 4.787799 Berbeda Signifikan
## 4 A-E 8.8 4.787799 Berbeda Signifikan
## 5 B-C 5.4 4.787799 Berbeda Signifikan
## 6 B-D 6.2 4.787799 Berbeda Signifikan
## 7 B-E 6.8 4.787799 Berbeda Signifikan
## 8 C-D 0.8 4.787799 Berbeda Tidak Signifikan
## 9 C-E 1.4 4.787799 Berbeda Tidak Signifikan
## 10 D-E 0.6 4.787799 Berbeda Tidak Signifikan
Interpretasi hasil Uji Tukey
Setelah analisis ANOVA didapatkan kesimpulan bahwa
Terdapat perbedaan yang signifikan atara jenis pupuk (A,B,C,D,E) terhadap hasil panen jagung per minggu.
ANOVA hanya memberi tahu kita apakah ada perbedaan yang signifikan antara setidaknya dua perlakuan, tetapi tidak memberi tahu kita pasangan perlakuan mana yang berbeda secara spesifik.Dengan Uji Tukey akan dilihat pasangan mana yang berbeda signifikan. jika \(|PerbedaanRataan|>BNJ\) maka pasangan jenis pupuk tersebut berbeda signifikan terhadap hasil panen jagung per minggu.Pasangan jenis pupuk yang berbeda signifikan terhadap hasil panen jagung per minggu adalah A-B, A-C, A-D, A-E, B-C, B-D, B-E.
Kode R diatas adalah perhitungan manual untuk melihat signifikansi perbedaan pasangan jenis pupuk terhadap hasil panen jagung per minggu. berikut jika menggunakan fungsi yang tersedia di R dan informasinya lebih lengkap.
## Df Sum Sq Mean Sq F value Pr(>F)
## Pupuk 4 630 157.5 24.61 1.76e-07 ***
## Residuals 20 128 6.4
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = Nilai ~ Pupuk, data = data_RAL)
##
## $Pupuk
## diff lwr upr p adj
## B-A -15.6 -20.3877993 -10.812201 0.0000000
## C-A -10.2 -14.9877993 -5.412201 0.0000288
## D-A -9.4 -14.1877993 -4.612201 0.0000846
## E-A -8.8 -13.5877993 -4.012201 0.0001929
## C-B 5.4 0.6122007 10.187799 0.0223615
## D-B 6.2 1.4122007 10.987799 0.0074535
## E-B 6.8 2.0122007 11.587799 0.0032093
## D-C 0.8 -3.9877993 5.587799 0.9864257
## E-C 1.4 -3.3877993 6.187799 0.9027243
## E-D 0.6 -4.1877993 5.387799 0.9954413