Library:
> # install.packages("knitr")
> # install.packages("rmarkdown")
> # install.packages("prettydoc")
> # install.packages("equatiomatic")
> # install.packages("dplyr)
> # install.packages("tidyr")
> # install.packages("readr")
> # install.packages("Hmisc")
> # install.packages("ggplot2")
> # install.packages("readxl")
> # install.packages("car")
> # install.packages("prettydoc")
Suatu toko tentu mengharapkan adanya peningkatan pendapatan. Untuk itu dilakukan penelitian untuk menyelidiki apakah rata-rata penjualan di suatu toko untuk beberapa merek itu sama. Harapannya setelah diketahui rata-ratanya akan bisa menetapkan strategi peningkatan penjualan.
Statistik deskriptif adalah statistik yang digunakan untuk menganalisa data dengan cara mendeskripsikan atau mengambarkan data yang telah terkumpul sebagaimana adanya tanpa bermaksud membuat kesimpulan yang berlaku untuk umum atau generalisasi (Sugiono, 2012:206).
Metode ANOVA dikembangkan oleh R.A Fisher. Analisis varians satu jalur adalah proses menganalisis data yang diperoleh dari percobaan dengan berbagai tingkat faktor, biasanya lebih dari dua tingkat faktor. Tujuan dari analisis ini adalah untuk mengindentifikasi variabel bebas yang penting dan bagaimana variabel tersebut dapat mempengaruhi respons (Wackerley, 2008 dalam Fajrin, 2011). Hipotesis untuk uji ANOVA adalah: \[ H_0 : \mu_1=\mu_2=...=\mu_p(Rata-rata\ semua \ perlakuan \ sama \ dan \ tidak \ ada \ kegaraman \ dalam \ grup) \\ H_1: \exists \mu_i=0 (Minimal \ ada \ satu \ rata-rata\ yang \ berbeda) \]
Data yang digunakan adalah data fiktif jumlah penjualan 4 merek di toko X selama 4 minggu.
Berikut merupakan cara untuk melakukan uji analisis ragam satu arah (One way ANOVA). Contoh penyelesaian kasus yang digunakan menggunakan data fiktif. Sebelum menuju ke ANOVA harus terlebih dahulu memenuhi asumsi homogenitas dan normalitas. Uji homogenitas menggunakan uji levene dan uji normalitas menggunakan uji saphiro wilks. Sebelumnya harus juga menginstal library yang diperlukan untuk analisis seperti yang tertera di install packages.
> # Library
> library(dplyr)
> library(tidyr)
> library(readr)
> library(Hmisc)
> library(ggplot2)
> library(readxl)
> library(car)
> library(prettydoc)
> library(readxl)
> Data_ANOVA <- read_excel("E:/(C)/Download/Data ANOVA.xlsx")
> View(Data_ANOVA)
Eksplorasi data digunakan untuk melihat statistika deskriptif.
> nrow(Data_ANOVA)
[1] 20
> ncol(Data_ANOVA)
[1] 2
> colnames(Data_ANOVA)
[1] "Merek" "Jmljual"
> names(Data_ANOVA)
[1] "Merek" "Jmljual"
> str(Data_ANOVA)
tibble [20 x 2] (S3: tbl_df/tbl/data.frame)
$ Merek : chr [1:20] "A" "A" "A" "A" ...
$ Jmljual: num [1:20] 20 13 16 17 32 12 19 25 28 43 ...
> Data_ANOVA$Merek
[1] "A" "A" "A" "A" "A" "B" "B" "B" "B" "B" "C" "C" "C" "C" "C" "D" "D" "D" "D"
[20] "D"
> Data_ANOVA$Jmljual
[1] 20 13 16 17 32 12 19 25 28 43 25 18 29 37 40 15 18 29 12 22
> typeof(Data_ANOVA$Merek)
[1] "character"
> typeof(Data_ANOVA$Jmljual)
[1] "double"
> summary(Data_ANOVA)
Merek Jmljual
Length:20 Min. :12.00
Class :character 1st Qu.:16.75
Mode :character Median :21.00
Mean :23.50
3rd Qu.:29.00
Max. :43.00
> describe(Data_ANOVA)
Data_ANOVA
2 Variables 20 Observations
--------------------------------------------------------------------------------
Merek
n missing distinct
20 0 4
Value A B C D
Frequency 5 5 5 5
Proportion 0.25 0.25 0.25 0.25
--------------------------------------------------------------------------------
Jmljual
n missing distinct Info Mean Gmd .05 .10
20 0 16 0.997 23.5 10.64 12.00 12.90
.25 .50 .75 .90 .95
16.75 21.00 29.00 37.30 40.15
lowest : 12 13 15 16 17, highest: 29 32 37 40 43
Value 12 13 15 16 17 18 19 20 22 25 28 29 32
Frequency 2 1 1 1 1 2 1 1 1 2 1 2 1
Proportion 0.10 0.05 0.05 0.05 0.05 0.10 0.05 0.05 0.05 0.10 0.05 0.10 0.05
Value 37 40 43
Frequency 1 1 1
Proportion 0.05 0.05 0.05
--------------------------------------------------------------------------------
> histogram(Data_ANOVA$Jmljual, data=Data_ANOVA)
> histogram
function (x, data, ...)
UseMethod("histogram")
<bytecode: 0x102ad9d8>
<environment: namespace:lattice>
> boxplot(Data_ANOVA$Jmljual, data=Data_ANOVA, xlab = "Merek",
+ ylab = "Jumlah Penjualan", main = "Penjualan")
> boxplot
function (x, ...)
UseMethod("boxplot")
<bytecode: 0x06876b58>
<environment: namespace:graphics>
Berdasarkan Data yang digunakan, terdapat 4 merek dan banyak data sebanyak 20. Diperoleh mean 23.5.
Sebelum melakukan uji anova, ada asumsi yang harus dipenuhi yaitu uji homogenitas dan uji normalitas. Uji homogenitas menggunakan uji levene dan uji normalitas menggunakan uji saphiro wilks.
> leveneTest(Jmljual~Merek, data=Data_ANOVA)
Levene's Test for Homogeneity of Variance (center = median)
Df F value Pr(>F)
group 3 0.4112 0.7472
16
> shapiro.test(Data_ANOVA$Jmljual)
Shapiro-Wilk normality test
data: Data_ANOVA$Jmljual
W = 0.92909, p-value = 0.1483
> qqPlot(Data_ANOVA$Jmljual)
[1] 10 15
Uji levene: H0: populasi homogen vs H1: paling tidak ada satu populasi yang berbeda Hasil pvalue (0.7)>0.05 jadi terima H0 atau populasi homogen.
Uji Saphiro wilks: H0: populasi berdistribusi normal vs H1: populasi tidak bedistribusi normal Hasil pvalue (0.1483)>0.05 jadi terima H0 atau data berdistribusi normal.
Menghitung derajat bebas yang akan digunakan untuk uji anova.
> N <- nrow(Data_ANOVA)
> N
[1] 20
> p <- Data_ANOVA$Merek %>% unique() %>% length()
> p
[1] 4
> DBt <- N-1
> DBt
[1] 19
> DBp <- p-1
> DBp
[1] 3
> DBg <- N-p
> DBg
[1] 16
Terdapat 3 jumlah kuadrat yang akan digunakan untuk uji anova one way yaitu jumlah kuadrat perlakuan, galat, dan total.
> perlakuan.mean <- aggregate(Jmljual~ Merek, Data_ANOVA, mean )[,2]
> perlakuan.mean
[1] 19.6 25.4 29.8 19.2
> n <- aggregate(Jmljual~ Merek, Data_ANOVA, length)[,2]
> n
[1] 5 5 5 5
> grand.mean <- mean(Data_ANOVA$Jmljual)
> grand.mean
[1] 23.5
> JKt <- sum((Data_ANOVA$Jmljual-grand.mean)^2)
> JKt
[1] 1633
> JKp <- sum(n*(perlakuan.mean - grand.mean)^2)
> JKp
[1] 385
> JKg <- JKt-JKp
> JKg
[1] 1248
Selanjutnya menghitung kuadrat tengah. Terdapat 2 kuadrat tengah yang harus dihitung yaitu kuadrat tengah perlakuan dan galat. Caranya adalah dengan membagi jumlah kuadrat dengan derajat bebas.
> KTp <- JKp/DBp
> KTp
[1] 128.3333
> KTg <- JKg/DBg
> KTg
[1] 78
Kemudian menghitung Fhitung yang diberi nama Feks. Caranya dengan membagi kuadrat tengah perlakuan dengan kuadat tengah galat.
> Feks<-KTp/KTg
> Feks
[1] 1.645299
Menghitung pvalue untuk menentukan keputusan uji menggunakan fungsi pval. q merupakan nilai ftabel.
> pval=2*pt(q=2.35, df=16, lower.tail=FALSE)
> pval
[1] 0.03193574
Setelah semua perhitungan selesai, kemudian menyusun tabel ANOVA dan menentukan keputusan uji.
> tabelANOVA<-data.frame(SK = c("Perlakuan", "Galat", "Total"),
+ DB = c(DBp, DBg,DBt),
+ JK = c(JKp,JKg,JKt),
+ KT = c(KTp,KTg,NA),
+ Fhit = c(Feks,NA,NA),
+ Pvalue = c(pval,NA,NA))
> tabelANOVA
SK DB JK KT Fhit Pvalue
1 Perlakuan 3 385 128.3333 1.645299 0.03193574
2 Galat 16 1248 78.0000 NA NA
3 Total 19 1633 NA NA NA
Dari hasil tabel anova didapatkan bahwa pvalue(0.03)<0.05 maka tolak H0. Jadi, dengan tingkat kepercayaan 95% dapat disimpulkan rata-rata penjualan di toko X untuk 4 merek berbeda.
Rpubs.com (2020, 3 September).Analisis Ragam 1 Arah/ANOVA 1 jalur. Diakses pada 21 Mei 2022, dari https://rpubs.com/irlova/ANOVA1Jalur.