Ditulisan ini saya ingin menuliskan bagaimana cara melihat data yang kita punya berdistribusi normal atau tidak. kenapa data itu harus di cek ini sudah saya tuliskan dalam notebook saya klik di sini. Seperti yang kita ketahui, untuk menguji apakah suatu data berdistribusi normal atau tidak, kita bisa menggunakan setidaknya dua metode. Yakni: Kolmogorov-Smirnov dan Shapiro-Wilk. Jika n < 50 gunakan Shapiro-Wilk sedangkan saat n > 50 gunakan Kolmogorov-Smirnov.

Package

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.3     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(knitr)
library(readxl)

Explore file

data <- read_excel("D:/R/NORMAL DISTRIBUTION/SERVICE LEVEL.xlsx", sheet = "Sheet1")
glimpse(data)
## Rows: 200
## Columns: 3
## $ ervice.level.a  <dbl> 3, 5, 7, 7, 2, 2, 6, 5, 9, 4, 7, 1, 3, 2, 6, 10, 6, 10…
## $ service.level.b <dbl> 4, 9, 5, 8, 6, 8, 5, 6, 8, 8, 6, 6, 9, 8, 10, 10, 10, …
## $ service.level.c <dbl> 9, 10, 7, 11, 10, 12, 10, 8, 8, 10, 7, 12, 7, 6, 8, 10…

Karena data di atas terdiri dari 200 baris data artinya > 50 sehingga metode yang kita gunakan adalah Kolmogorov-Smirnov ingat yak bukan Shapiro-Wilk

HIPOTESIS

cek normalitas juga merupakan uji hipotesis, maka langkah-langkah yang harus ditempuh:

Tentukan hipotesis nol dan alternatif:

H_0: Data berdistribusi normal.
H_1: Data tidak berdistribusi normal.

Maka dalam hal ini kita akan mengetahui apakah data kita colom A, B, dan C adalah berdistribusi normal atau tidak.

PROSESS

test.a <- ks.test(data$ervice.level.a, 'pnorm')
## Warning in ks.test.default(data$ervice.level.a, "pnorm"): ties should not be
## present for the Kolmogorov-Smirnov test
test.b <- ks.test(data$service.level.b, 'pnorm')
## Warning in ks.test.default(data$service.level.b, "pnorm"): ties should not be
## present for the Kolmogorov-Smirnov test
test.c <- ks.test(data$service.level.c, 'pnorm')
## Warning in ks.test.default(data$service.level.c, "pnorm"): ties should not be
## present for the Kolmogorov-Smirnov test
hasil <- data.frame(
  vendor = c('A', 'B', 'C'),
  p_value = c(test.a$p.value, test.b$p.value, test.c$p.value)
) %>% 
  mutate(Hipotesis =  ifelse(p_value < 0.05, 'Tolak H0', 'H0  di terima'),
         kesimpulan = ifelse(p_value < 0.05, 'Data tidak berdistribusi normal', 'Data berdistibusi Normal')
         )
kable(hasil)
vendor p_value Hipotesis kesimpulan
A 0 Tolak H0 Data tidak berdistribusi normal
B 0 Tolak H0 Data tidak berdistribusi normal
C 0 Tolak H0 Data tidak berdistribusi normal

Ternyata didapatkan bahwa ketiga data vendor tersebut tidak berdistribusi normal.

selanjutnya kita bisa melakukan langkah langkah selanjutnya dalam analisa data. tulisnya akan di simpan dalam tulisan yang lain.

Tambahan

kalau pakai Kolomogorofkan menggunakan sintx ks.test(data$ervice.level.a, 'pnorm') lalu kalau shapiro gimana gaes?

mungkin ada yang bertanya seperti demikian. jadi caranya adalah :

shapiro.test(data$ervice.level.a)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$ervice.level.a
## W = 0.93637, p-value = 1.121e-07

P valueny lebih dari 0.5 artinya H0 di terima. et dah jangan lupa ini hanya contoh. shappiro ini gak berlaku karna apa?

benar, karna datanya >50.

Semoga bermanfaat.