# ============================================================
# LATIHAN 1 — ANOVA DUA JALUR
# ============================================================
# Data tinggi tanaman
tinggi <- c(
25,28,26,27, 20,22,21,23, 30,32,31,29,
30,32,31,33, 25,27,26,28, 35,37,36,34,
28,30,29,31, 23,25,24,26, 33,35,34,32
)
# Faktor pupuk
pupuk <- factor(rep(c("Organik", "Anorganik", "Campuran"),
each = 12))
# Faktor tanah
tanah <- factor(rep(rep(c("Lempung", "Pasir", "Humus"),
each = 4), 3))
# Membuat data frame
data <- data.frame(tinggi, pupuk, tanah)
# Melihat data
data
## tinggi pupuk tanah
## 1 25 Organik Lempung
## 2 28 Organik Lempung
## 3 26 Organik Lempung
## 4 27 Organik Lempung
## 5 20 Organik Pasir
## 6 22 Organik Pasir
## 7 21 Organik Pasir
## 8 23 Organik Pasir
## 9 30 Organik Humus
## 10 32 Organik Humus
## 11 31 Organik Humus
## 12 29 Organik Humus
## 13 30 Anorganik Lempung
## 14 32 Anorganik Lempung
## 15 31 Anorganik Lempung
## 16 33 Anorganik Lempung
## 17 25 Anorganik Pasir
## 18 27 Anorganik Pasir
## 19 26 Anorganik Pasir
## 20 28 Anorganik Pasir
## 21 35 Anorganik Humus
## 22 37 Anorganik Humus
## 23 36 Anorganik Humus
## 24 34 Anorganik Humus
## 25 28 Campuran Lempung
## 26 30 Campuran Lempung
## 27 29 Campuran Lempung
## 28 31 Campuran Lempung
## 29 23 Campuran Pasir
## 30 25 Campuran Pasir
## 31 24 Campuran Pasir
## 32 26 Campuran Pasir
## 33 33 Campuran Humus
## 34 35 Campuran Humus
## 35 34 Campuran Humus
## 36 32 Campuran Humus
# ============================================================
# MODEL ANOVA DUA JALUR
# ============================================================
model <- aov(tinggi ~ pupuk * tanah, data = data)
# Output ANOVA
summary(model)
## Df Sum Sq Mean Sq F value Pr(>F)
## pupuk 2 152 76.00 45.6 2.20e-09 ***
## tanah 2 488 244.00 146.4 3.22e-15 ***
## pupuk:tanah 4 0 0.00 0.0 1
## Residuals 27 45 1.67
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# ============================================================
# UJI LANJUTAN
# ============================================================
TukeyHSD(model)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = tinggi ~ pupuk * tanah, data = data)
##
## $pupuk
## diff lwr upr p adj
## Campuran-Anorganik -2 -3.306768 -0.6932321 0.0021250
## Organik-Anorganik -5 -6.306768 -3.6932321 0.0000000
## Organik-Campuran -3 -4.306768 -1.6932321 0.0000139
##
## $tanah
## diff lwr upr p adj
## Lempung-Humus -4 -5.306768 -2.693232 1e-07
## Pasir-Humus -9 -10.306768 -7.693232 0e+00
## Pasir-Lempung -5 -6.306768 -3.693232 0e+00
##
## $`pupuk:tanah`
## diff lwr upr
## Campuran:Humus-Anorganik:Humus -2.000000e+00 -5.071534 1.07153421
## Organik:Humus-Anorganik:Humus -5.000000e+00 -8.071534 -1.92846579
## Anorganik:Lempung-Anorganik:Humus -4.000000e+00 -7.071534 -0.92846579
## Campuran:Lempung-Anorganik:Humus -6.000000e+00 -9.071534 -2.92846579
## Organik:Lempung-Anorganik:Humus -9.000000e+00 -12.071534 -5.92846579
## Anorganik:Pasir-Anorganik:Humus -9.000000e+00 -12.071534 -5.92846579
## Campuran:Pasir-Anorganik:Humus -1.100000e+01 -14.071534 -7.92846579
## Organik:Pasir-Anorganik:Humus -1.400000e+01 -17.071534 -10.92846579
## Organik:Humus-Campuran:Humus -3.000000e+00 -6.071534 0.07153421
## Anorganik:Lempung-Campuran:Humus -2.000000e+00 -5.071534 1.07153421
## Campuran:Lempung-Campuran:Humus -4.000000e+00 -7.071534 -0.92846579
## Organik:Lempung-Campuran:Humus -7.000000e+00 -10.071534 -3.92846579
## Anorganik:Pasir-Campuran:Humus -7.000000e+00 -10.071534 -3.92846579
## Campuran:Pasir-Campuran:Humus -9.000000e+00 -12.071534 -5.92846579
## Organik:Pasir-Campuran:Humus -1.200000e+01 -15.071534 -8.92846579
## Anorganik:Lempung-Organik:Humus 1.000000e+00 -2.071534 4.07153421
## Campuran:Lempung-Organik:Humus -1.000000e+00 -4.071534 2.07153421
## Organik:Lempung-Organik:Humus -4.000000e+00 -7.071534 -0.92846579
## Anorganik:Pasir-Organik:Humus -4.000000e+00 -7.071534 -0.92846579
## Campuran:Pasir-Organik:Humus -6.000000e+00 -9.071534 -2.92846579
## Organik:Pasir-Organik:Humus -9.000000e+00 -12.071534 -5.92846579
## Campuran:Lempung-Anorganik:Lempung -2.000000e+00 -5.071534 1.07153421
## Organik:Lempung-Anorganik:Lempung -5.000000e+00 -8.071534 -1.92846579
## Anorganik:Pasir-Anorganik:Lempung -5.000000e+00 -8.071534 -1.92846579
## Campuran:Pasir-Anorganik:Lempung -7.000000e+00 -10.071534 -3.92846579
## Organik:Pasir-Anorganik:Lempung -1.000000e+01 -13.071534 -6.92846579
## Organik:Lempung-Campuran:Lempung -3.000000e+00 -6.071534 0.07153421
## Anorganik:Pasir-Campuran:Lempung -3.000000e+00 -6.071534 0.07153421
## Campuran:Pasir-Campuran:Lempung -5.000000e+00 -8.071534 -1.92846579
## Organik:Pasir-Campuran:Lempung -8.000000e+00 -11.071534 -4.92846579
## Anorganik:Pasir-Organik:Lempung 3.552714e-15 -3.071534 3.07153421
## Campuran:Pasir-Organik:Lempung -2.000000e+00 -5.071534 1.07153421
## Organik:Pasir-Organik:Lempung -5.000000e+00 -8.071534 -1.92846579
## Campuran:Pasir-Anorganik:Pasir -2.000000e+00 -5.071534 1.07153421
## Organik:Pasir-Anorganik:Pasir -5.000000e+00 -8.071534 -1.92846579
## Organik:Pasir-Campuran:Pasir -3.000000e+00 -6.071534 0.07153421
## p adj
## Campuran:Humus-Anorganik:Humus 0.4387176
## Organik:Humus-Anorganik:Humus 0.0002547
## Anorganik:Lempung-Anorganik:Humus 0.0043156
## Campuran:Lempung-Anorganik:Humus 0.0000151
## Organik:Lempung-Anorganik:Humus 0.0000000
## Anorganik:Pasir-Anorganik:Humus 0.0000000
## Campuran:Pasir-Anorganik:Humus 0.0000000
## Organik:Pasir-Anorganik:Humus 0.0000000
## Organik:Humus-Campuran:Humus 0.0594707
## Anorganik:Lempung-Campuran:Humus 0.4387176
## Campuran:Lempung-Campuran:Humus 0.0043156
## Organik:Lempung-Campuran:Humus 0.0000010
## Anorganik:Pasir-Campuran:Humus 0.0000010
## Campuran:Pasir-Campuran:Humus 0.0000000
## Organik:Pasir-Campuran:Humus 0.0000000
## Anorganik:Lempung-Organik:Humus 0.9699775
## Campuran:Lempung-Organik:Humus 0.9699775
## Organik:Lempung-Organik:Humus 0.0043156
## Anorganik:Pasir-Organik:Humus 0.0043156
## Campuran:Pasir-Organik:Humus 0.0000151
## Organik:Pasir-Organik:Humus 0.0000000
## Campuran:Lempung-Anorganik:Lempung 0.4387176
## Organik:Lempung-Anorganik:Lempung 0.0002547
## Anorganik:Pasir-Anorganik:Lempung 0.0002547
## Campuran:Pasir-Anorganik:Lempung 0.0000010
## Organik:Pasir-Anorganik:Lempung 0.0000000
## Organik:Lempung-Campuran:Lempung 0.0594707
## Anorganik:Pasir-Campuran:Lempung 0.0594707
## Campuran:Pasir-Campuran:Lempung 0.0002547
## Organik:Pasir-Campuran:Lempung 0.0000001
## Anorganik:Pasir-Organik:Lempung 1.0000000
## Campuran:Pasir-Organik:Lempung 0.4387176
## Organik:Pasir-Organik:Lempung 0.0002547
## Campuran:Pasir-Anorganik:Pasir 0.4387176
## Organik:Pasir-Anorganik:Pasir 0.0002547
## Organik:Pasir-Campuran:Pasir 0.0594707
# ============================================================
# INTERACTION PLOT
# ============================================================
interaction.plot(
pupuk,
tanah,
tinggi,
type = "b",
xlab = "Jenis Pupuk",
ylab = "Rata-rata Tinggi Tanaman",
trace.label = "Jenis Tanah")

# ============================================================
# LATIHAN 2 — MANOVA
# ============================================================
pendapatan <- c(
3, 4, 3.5, 4.5, 3.8,
6, 7, 6.5, 7.5, 6.8,
10, 12, 11, 13, 11.5)
kepuasan <- c(
6, 7, 6.5, 7, 6.8,
8, 9, 8.5, 9, 8.8,
9, 10, 9.5, 10, 9.8)
pendidikan <- factor(rep(c("SMA", "S1", "S2"), each = 5))
Y <- cbind(pendapatan, kepuasan)
# MANOVA
model_manova <- manova(Y ~ pendidikan)
# Wilks
summary(model_manova, test = "Wilks")
## Df Wilks approx F num Df den Df Pr(>F)
## pendidikan 2 0.0080673 55.735 4 22 3.38e-11 ***
## Residuals 12
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Pillai
summary(model_manova, test = "Pillai")
## Df Pillai approx F num Df den Df Pr(>F)
## pendidikan 2 1.759 43.784 4 24 1.085e-10 ***
## Residuals 12
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# ============================================================
# RATA-RATA
# ============================================================
mean_SMA <- colMeans(Y[pendidikan == "SMA", ])
mean_S1 <- colMeans(Y[pendidikan == "S1", ])
mean_S2 <- colMeans(Y[pendidikan == "S2", ])
mean_total <- colMeans(Y)
mean_SMA
## pendapatan kepuasan
## 3.76 6.66
mean_S1
## pendapatan kepuasan
## 6.76 8.66
mean_S2
## pendapatan kepuasan
## 11.50 9.66
mean_total
## pendapatan kepuasan
## 7.340000 8.326667
# ============================================================
# MATRIKS B
# ============================================================
B <- matrix(0, 2, 2)
for (m in c("SMA", "S1", "S2")) {
mean_group <- colMeans(Y[pendidikan == m, ])
selisih <- mean_group - mean_total
B <- B + 5 * (selisih %*% t(selisih))}
B
## pendapatan kepuasan
## [1,] 152.292 56.60000
## [2,] 56.600 23.33333
# ============================================================
# MATRIKS W
# ============================================================
W <- matrix(0, 2, 2)
for (m in c("SMA", "S1", "S2")) {
data_group <- Y[pendidikan == m, ]
mean_group <- colMeans(data_group)
for (i in 1:nrow(data_group)) {
selisih <- data_group[i, ] - mean_group
W <- W + selisih %*% t(selisih)}}
W
## pendapatan kepuasan
## [1,] 7.504 3.514
## [2,] 3.514 2.136
# ============================================================
# MATRIKS T
# ============================================================
T <- B + W
T
## pendapatan kepuasan
## [1,] 159.796 60.11400
## [2,] 60.114 25.46933
# ============================================================
# WILKS' LAMBDA MANUAL
# ============================================================
wilks_lambda <- det(W) / det(T)
wilks_lambda
## [1] 0.008067319