R Markdown

SOAL 1: Uji Normalitas Data Tunggal Sebuah data berikut menunjukkan jumlah penjualan harian (unit) pada sebuah toko selama 20 hari:

# Data penjualan selama 20 hari
penjualan <- c(45, 52, 47, 50, 49, 53, 54, 48, 51, 50, 
               55, 46, 49, 47, 52, 50, 48, 53, 54, 49)
penjualan
##  [1] 45 52 47 50 49 53 54 48 51 50 55 46 49 47 52 50 48 53 54 49
  1. Visualisasi Data # Histogram
hist(penjualan,
     main = "Histogram Penjualan Harian",
     xlab = "Jumlah Penjualan (Unit)",
     ylab = "Frekuensi",
     col = "lightblue",
     border = "black")

#QQ-Plot

qqnorm(penjualan,
       main = "QQ-Plot Penjualan Harian")
qqline(penjualan, col = "red", lwd = 2)

2 dan 3. Lakukan Uji Shapiro-Wilk dan Uji Kolmogorov–Smirnov serta Interpretasikan hasil uji dan tuliskan nilai p-value.

Uji Shapiro-Wilk

shapiro.test(penjualan)
## 
##  Shapiro-Wilk normality test
## 
## data:  penjualan
## W = 0.96996, p-value = 0.754

Hipotesis: H₀: Data berdistribusi normal. H₁: Data tidak berdistribusi normal. Dengan taraf signifikasi α=0,05 Karena 0,754 > 0,05, maka H₀ tidak ditolak.

Interpretasi: Berdasarkan uji Shapiro-Wilk, diperoleh nilai W= 0,96996 dan p-value= 0,754. Karena p-value > 0,05 maka H₀ tidak ditolak. Artinya, tidak terdapat bukti yang cukup untuk menyatakan bahwa data penjualan harian tidak berdistribusi normal.

Dengan demikian, berdasarkan uji Shapiro-Wilk, data penjualan harian dapat dianggap berdistribusi normal.

Uji Kolmogorov-Smirnov

ks.test(scale(penjualan), "pnorm")
## Warning in ks.test.default(scale(penjualan), "pnorm"): ties should not be
## present for the one-sample Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  scale(penjualan)
## D = 0.11402, p-value = 0.9573
## alternative hypothesis: two-sided

Hipotesis: H₀: Data mengikuti distribusi normal. H₁: Data tidak mengikuti distribusi normal. Dengan taraf signifikasi α=0,05 Karena 0,9573 > 0,05, maka H₀ tidak ditolak.

Interpretasi: Berdasarkan uji Kolmogorov-Smirnov diperoleh nilai D = 0,11402 dengan p-value = 0,9573. Karena p-value > 0,05, maka H₀ tidak ditolak.

Artinya, tidak terdapat bukti yang cukup untuk menyatakan bahwa data penjualan harian berbeda dari distribusi normal. Dengan demikian, berdasarkan uji Kolmogorov-Smirnov, data penjualan harian dapat dianggap berdistribusi normal.

Jadi, berdasarkan histogram, QQ-plot, uji Shapiro-Wilk, dan uji Kolmogorov-Smirnov, data jumlah penjualan harian selama 20 hari dapat dianggap berdistribusi normal.

SOAL 2: Uji Normalitas pada Dua Variabel Gunakan data hipotetik berikut mengenai berat badan (kg) dan tinggi badan (cm) dari 30 responden:

berat <- c(55, 60, 62, 58, 64, 70, 68, 72, 59, 61,
           63, 65, 66, 67, 71, 69, 60, 58, 62, 64,
           73, 75, 77, 68, 70, 72, 74, 69, 63, 65)
berat
##  [1] 55 60 62 58 64 70 68 72 59 61 63 65 66 67 71 69 60 58 62 64 73 75 77 68 70
## [26] 72 74 69 63 65
tinggi <- c(160, 162, 164, 158, 166, 172, 170, 175, 161, 163, 165, 167, 169, 171, 173, 174, 160, 159, 164, 166, 176, 178, 180, 172, 174, 176, 177, 171,165,167)
tinggi
##  [1] 160 162 164 158 166 172 170 175 161 163 165 167 169 171 173 174 160 159 164
## [20] 166 176 178 180 172 174 176 177 171 165 167
  1. Gunakan mapply() atau lapply() untuk menguji normalitas kedua variabel secara bersamaan.
data <- list(berat = berat, tinggi = tinggi)

mapply(function(x) shapiro.test(x), data)
##           berat                         tinggi                       
## statistic 0.9825681                     0.9647532                    
## p.value   0.8889398                     0.4071377                    
## method    "Shapiro-Wilk normality test" "Shapiro-Wilk normality test"
## data.name "x"                           "x"
lapply(data, shapiro.test)
## $berat
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.98257, p-value = 0.8889
## 
## 
## $tinggi
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.96475, p-value = 0.4071

atau bisa menggunakan uji normalitas berikut

data_normalitas <- list(
  Berat = berat,
  Tinggi = tinggi
)

hasil_shapiro <- mapply(
  function(x) shapiro.test(x),
  data_normalitas
)

hasil_shapiro
##           Berat                         Tinggi                       
## statistic 0.9825681                     0.9647532                    
## p.value   0.8889398                     0.4071377                    
## method    "Shapiro-Wilk normality test" "Shapiro-Wilk normality test"
## data.name "x"                           "x"

Uji normalitas berat badan Hipotesis yang digunakan: H₀: Data berat badan berdistribusi normal. H₁: Data berat badan tidak berdistribusi normal. Dengan taraf signifikansi α=0,05. Diperoleh: W = 0,9825681 P-value = 0,8889398 Karena 0,8889398 > 0,05, maka H₀ tidak ditolak.

Interpretasi: Berdasarkan uji Shapiro-Wilk, variabel berat badan menghasilkan nilai W sebesar 0,9825681 dan p-value sebesar 0,8889398. Karena p-value > 0,05, maka H₀ tidak ditolak.

Artinya, tidak terdapat bukti yang cukup untuk menyatakan bahwa data berat badan tidak berdistribusi normal. Dengan demikian, data berat badan dapat dianggap berdistribusi normal.

Uji normalitas tinggi badan Hipotesis yang digunakan: H₀: Data tinggi badan berdistribusi normal. H₁: Data tinggi badan tidak berdistribusi normal. Dengan taraf signifikansi α=0,05 Diperoleh: W = 0,9647532 P-value = 0,4071377 Karena 0,4071377 > 0,05, maka H₀ tidak ditolak.

Interpretasi: Berdasarkan uji Shapiro-Wilk, variabel tinggi badan menghasilkan nilai W sebesar 0,9647532 dan p-value sebesar 0,4071377. Karena p-value > 0,05, maka H₀ tidak ditolak.

Artinya, tidak terdapat bukti yang cukup untuk menyatakan bahwa data tinggi badan tidak berdistribusi normal. Dengan demikian, data tinggi badan dapat dianggap berdistribusi normal.

  1. Buat QQ plot untuk masing-masing variabel.
qqnorm(berat, main = "QQ-Plot Berat Badan")
qqline(berat, col = "red")

qqnorm(tinggi, main = "QQ-Plot Tinggi Badan")
qqline(tinggi, col = "red")

Interpretasi QQ-Plot QQ-Plot Berat Badan

Pada QQ-plot berat badan, sebagian besar titik pengamatan berada di sekitar garis referensi. Titik-titik tersebut tidak menunjukkan penyimpangan yang besar dari garis lurus. Hal ini menunjukkan bahwa data berat badan secara visual memiliki pola yang mendekati distribusi normal.

QQ-Plot Tinggi Badan

Pada QQ-plot tinggi badan, sebagian besar titik juga berada di sekitar garis referensi. Terdapat sedikit penyimpangan pada beberapa titik, tetapi tidak menunjukkan penyimpangan yang ekstrem. Oleh karena itu, data tinggi badan secara visual juga cukup mendekati distribusi normal.

  1. Bandingkan hasil uji Shapiro-Wilk dan simpulkan variabel mana yang lebih mendekati distribusi normal. Jika dibandingkan berdasarkan hasil uji Shapiro-Wilk:

Berat badan: W = 0,98257 p-value = 0,8889 Tinggi badan: W = 0,96475 p-value = 0,40714

Berdasarkan hasil uji Shapiro-Wilk, kedua variabel memiliki p-value > 0,05, sehingga keduanya dapat dianggap berdistribusi normal.

Jika dibandingkan, variabel berat badan lebih mendekati distribusi normal dibandingkan variabel tinggi badan. Hal ini dapat dilihat dari nilai statistik Shapiro-Wilk berat badan (W = 0,98257) yang lebih dekat dengan 1 dibandingkan tinggi badan (W = 0,96475). Selain itu, p-value berat badan (0,8889) juga lebih besar daripada p-value tinggi badan (0,40714).

Data berat badan lebih mendekati distribusi normal, meskipun berat badan dan tinggi badan sama-sama dapat dianggap berdistribusi normal pada taraf signifikansi 5%.

SOAL 3 (Tantangan): Uji Normalitas pada Dataset R Gunakan dataset bawaan R berikut:

data <- mtcars

1.Ujilah apakah variabel mpg, hp, dan wt berdistribusi normal.

shapiro.test(data$mpg)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$mpg
## W = 0.94756, p-value = 0.1229
shapiro.test(data$hp)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$hp
## W = 0.93342, p-value = 0.04881
shapiro.test(data$wt)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$wt
## W = 0.94326, p-value = 0.09265

Interpretasi mpg Hasil: W = 0,94756 P-value = 0,1229 Karena 0,1229 > 0,05, maka H₀ tidak ditolak.

Interpretasi: Berdasarkan hasil, variabel mpg menghasilkan nilai W sebesar 0,94756 dan p-value sebesar 0,1229. Karena p-value > 0,05, maka H₀ tidak ditolak.

Dengan demikian, variabel mpg dapat dianggap berdistribusi normal.

Interpretasi hp Hasil W = 0,93342 P-value = 0,04881 Karena 0,04881 < 0,05, maka H₀ ditolak.

Interpretasi: Berdasarkan hasil, variabel hp menghasilkan nilai W sebesar 0,93342 dan p-value sebesar 0,04881. Karena p-value < 0,05, maka H₀ ditolak.

Dengan demikian, terdapat cukup bukti bahwa variabel hp tidak berdistribusi normal pada taraf signifikansi 5%.

Interpretasi wt Hasil W = 0,94326 P-value = 0,09265 Karena 0,09265 > 0,05, maka H₀ tidak ditolak.

Interpretasi: Berdasarkan hasil, variabel wt menghasilkan nilai W sebesar 0,94326 dan p-value sebesar 0,09265. Karena p-value > 0,05, maka H₀ tidak ditolak.

Dengan demikian, variabel wt dapat dianggap berdistribusi normal.

  1. Gunakan pendekatan: Shapiro-Wilk test Visualisasi density plot dengan garis normal overlay # Density plot mpg
plot(density(data$mpg),
     main = "Density Plot MPG",
     xlab = "MPG")
curve(
  dnorm(x,
        mean = mean (data$mpg),
        sd = sd(data$mpg)),
  add = TRUE,
  lwd=2
)

# Density plot hp

plot(density(data$hp),
     main = "Density Plot HP",
     xlab = "HP")
curve(
  dnorm(x,
        mean = mean (data$hp),
        sd = sd(data$hp)),
  add = TRUE,
  lwd=2
)

#Density plot wt

plot(density(data$wt),
     main = "Density Plot WT",
     xlab = "WT")
curve(
  dnorm(x,
        mean = mean (data$wt),
        sd = sd(data$wt)),
  add = TRUE,
  lwd=2
)