#CONTOH ANAVA 1 ARAH SAMPEL SAMA
library(car)
## Warning: package 'car' was built under R version 4.5.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.5.3
data=read.table(file.choose(),header=TRUE)
data
data$Mesin=factor(data$Mesin,levels=1:6,labels=c("M1","M2","M3","M4","M5","M6"))
data
#Pengecekan Normalitas
shapiro.test(data$Data[data$Mesin == "M1"])
##
## Shapiro-Wilk normality test
##
## data: data$Data[data$Mesin == "M1"]
## W = 0.9993, p-value = 0.9981
shapiro.test(data$Data[data$Mesin == "M2"])
##
## Shapiro-Wilk normality test
##
## data: data$Data[data$Mesin == "M2"]
## W = 0.98391, p-value = 0.9245
shapiro.test(data$Data[data$Mesin == "M3"])
##
## Shapiro-Wilk normality test
##
## data: data$Data[data$Mesin == "M3"]
## W = 0.98916, p-value = 0.9531
shapiro.test(data$Data[data$Mesin == "M4"])
##
## Shapiro-Wilk normality test
##
## data: data$Data[data$Mesin == "M4"]
## W = 0.98887, p-value = 0.9516
shapiro.test(data$Data[data$Mesin == "M5"])
##
## Shapiro-Wilk normality test
##
## data: data$Data[data$Mesin == "M5"]
## W = 0.9709, p-value = 0.847
shapiro.test(data$Data[data$Mesin == "M6"])
##
## Shapiro-Wilk normality test
##
## data: data$Data[data$Mesin == "M6"]
## W = 0.99095, p-value = 0.9623
#Pengecekan homogenitas var
leveneTest(Data~Mesin,data=data,center=mean)
anava_manual<- function(variabel_y, variabel_grup) {
variabel_grup <- as.factor(variabel_grup)
#Total seluruh pengamatan
N <- length(variabel_y)
#Jumlah kelompok (perlakuan)
k <- nlevels(variabel_grup)
#Total keseluruhan (T..)
T_total <- sum(variabel_y)
#Memisalkan faktor
nama_grup <- levels(variabel_grup)
#Vektor untuk menyimpan total data dan banyak entri data per faktor
Ti <- numeric(k)
ni <- numeric(k)
for (i in 1:k) {
nama_kelompok <- nama_grup[i]
data_kelompok <- variabel_y[variabel_grup == nama_kelompok]
Ti[i] <- sum(data_kelompok)
ni[i] <- length(data_kelompok)
}
cat("Total Seluruh Pengamatan (N) :", N, "\n")
cat("Jumlah Kelompok Perlakuan (k) :", k, "\n")
cat("Total Keseluruhan T.. :", T_total, "\n\n")
cat("\nHasil Perhitungan total:\n")
print(data.frame(Kelompok = nama_grup, Total_Ti = Ti, Jumlah_ni = ni))
#Menghitung JKT
JKT <- sum(variabel_y^2) - (T_total^2 / N)
#Menghitung JKK
JKK <- sum((Ti^2) / ni) - (T_total^2 / N)
#Menghitung JKG
JKG <- JKT - JKK
#df
db_perlakuan <- k - 1
db_galat <- N - k
db_total <- N - 1
#KTP dan KTG
KT_perlakuan <- JKK / db_perlakuan
KT_galat <- JKG / db_galat
#Fhitung
F_hitung <- KT_perlakuan / KT_galat
p_value <- pf(F_hitung, db_perlakuan, db_galat, lower.tail = FALSE)
#Output Tabel
tabel_anava <- data.frame(
"Sumber_Keragaman" = c("Perlakuan", "Galat", "Total"),
"Jumlah_Kuadrat" = c(JKK, JKG, JKT),
"Derajat_Bebas" = c(db_perlakuan, db_galat, db_total),
"Kuadrat_Tengah" = c(KT_perlakuan, KT_galat, NA),
"F_hitung" = c(F_hitung, NA, NA),
"p_value" = c(p_value, NA, NA)
)
print(tabel_anava, row.names = FALSE, digits = 4)
}
anava_manual(variabel_y = data$Data, variabel_grup = data$Mesin)
## Total Seluruh Pengamatan (N) : 24
## Jumlah Kelompok Perlakuan (k) : 6
## Total Keseluruhan T.. : 427
##
##
## Hasil Perhitungan total:
## Kelompok Total_Ti Jumlah_ni
## 1 M1 68.8 4
## 2 M2 68.7 4
## 3 M3 72.7 4
## 4 M4 71.0 4
## 5 M5 73.7 4
## 6 M6 72.1 4
## Sumber_Keragaman Jumlah_Kuadrat Derajat_Bebas Kuadrat_Tengah F_hitung p_value
## Perlakuan 5.338 5 1.068 0.3068 0.9024
## Galat 62.640 18 3.480 NA NA
## Total 67.978 23 NA NA NA
#Membandingkan dengan fungsi aov
anava=aov(Data~Mesin,data=data)
summary(anava)
## Df Sum Sq Mean Sq F value Pr(>F)
## Mesin 5 5.34 1.068 0.307 0.902
## Residuals 18 62.64 3.480
#ANAVA 2 ARAH DENGAN INTERAKSI
#PACKAGES
library(car)
library(agricolae)
## Warning: package 'agricolae' was built under R version 4.5.3
#Memanggil Data
data=read.table(file.choose(), header=T)
data
#Pendefinisian Variabel
data$VitaminC=factor(data$VitaminC,levels=1:2,labels=c("OJ","VC"))
data$Dosis=factor(data$Dosis,levels=1:3,labels=c("0.5","1","2"))
data
# Normalitas per Dosis
for(j in levels(data$Dosis)){
cat("\nUji Normalitas untuk Dosis:", j, "\n")
print(shapiro.test(data$Data[data$Dosis==j]))
}
##
## Uji Normalitas untuk Dosis: 0.5
##
## Shapiro-Wilk normality test
##
## data: data$Data[data$Dosis == j]
## W = 0.94393, p-value = 0.2842
##
##
## Uji Normalitas untuk Dosis: 1
##
## Shapiro-Wilk normality test
##
## data: data$Data[data$Dosis == j]
## W = 0.93134, p-value = 0.1639
##
##
## Uji Normalitas untuk Dosis: 2
##
## Shapiro-Wilk normality test
##
## data: data$Data[data$Dosis == j]
## W = 0.97775, p-value = 0.9019
# Normalitas per VitaminC
for(i in levels(data$VitaminC)){
cat("\nUji Normalitas untuk VitaminC:", i, "\n")
print(shapiro.test(data$Data[data$VitaminC==i]))
}
##
## Uji Normalitas untuk VitaminC: OJ
##
## Shapiro-Wilk normality test
##
## data: data$Data[data$VitaminC == i]
## W = 0.91852, p-value = 0.02456
##
##
## Uji Normalitas untuk VitaminC: VC
##
## Shapiro-Wilk normality test
##
## data: data$Data[data$VitaminC == i]
## W = 0.9654, p-value = 0.422
#Homogenitas variansi#
leveneTest(Data~Dosis, center=mean, data=data)
leveneTest(Data~VitaminC, center=mean, data=data)
leveneTest(Data~Dosis*VitaminC, center=mean,data=data)
#Uji ANOVA#
anava2arah <- function(y, A, B){
a <- nlevels(A); b <- nlevels(B)
N <- length(y); n <- N/(a*b)
FK <- sum(y)^2/N
JKT <- sum(y^2) - FK
JK_A <- sum(tapply(y, A, sum)^2)/(b*n) - FK
JK_B <- sum(tapply(y, B, sum)^2)/(a*n) - FK
JKsel <- sum(tapply(y, list(A,B), sum)^2)/n - FK
JK_AB <- JKsel - JK_A - JK_B
JKG <- JKT - JKsel
db <- c(a-1, b-1, (a-1)*(b-1), a*b*(n-1), N-1)
JK <- c(JK_A, JK_B, JK_AB, JKG, JKT)
KT <- JK/db
F <- c(KT[1:3]/KT[4], NA, NA)
p <- c(pf(F[1:3], db[1:3], db[4], lower.tail=FALSE), NA, NA)
data.frame(Sumber=c("A","B","A*B","Galat","Total"), db, JK, KT, F, p)
}
anava2arah(data$VitaminC, data$Dosis, y=data$Data)
uji_anava=aov(Data~VitaminC*Dosis,data=data)
anova(uji_anava)