1. Hitung Mean, Median, Modus

x <- c(22,25,19,30,24,21,45,23,20,26,24,22,18,27,23)

mean(x) # 24.6
## [1] 24.6
median(x) # 23
## [1] 23
tab <- table(x)
names(tab[tab == max(tab)]) # "22" "23" "24"
## [1] "22" "23" "24"

2. Q1, Q2, Dan IQR

quantile(x, c(0.25, 0.75), type = 6)   # sama dengan cara manual
## 25% 75% 
##  21  26
IQR(x, type = 6)
## [1] 5
quantile(x, c(0.25, 0.75))             # default R (type 7)
##  25%  75% 
## 21.5 25.5
IQR(x)
## [1] 4
batas_atas <- quantile(x, 0.75, type = 6) + 1.5 * IQR(x, type = 6)
x[x > batas_atas]                      # pencilan: 45
## [1] 45
boxplot(x, horizontal = TRUE, col = "lightgreen",
        main = "Boxplot Durasi Penggunaan", xlab = "Menit")

3. Varians dan standar deviasi

jk <- sum((x - mean(x))^2)
jk                      # 581.6
## [1] 581.6
jk / (length(x) - 1)    # varians manual
## [1] 41.54286
sqrt(jk / (length(x) - 1))
## [1] 6.445375
# Verifikasi
var(x)                  # 41.54286
## [1] 41.54286
sd(x)                   # 6.445
## [1] 6.445375
# Koefisien variasi
sd(x) / mean(x) * 100   # 26.2
## [1] 26.20071
# Pembanding tanpa pencilan
sd(x[x != 45])          # 3.23
## [1] 3.231031

4. Skewness

sk_pearson <- 3 * (mean(x) - median(x)) / sd(x)
sk_pearson                  # 0.7447
## [1] 0.7447201
# Verifikasi dengan skewness()
library(e1071)
skewness(x, type = 1)       # 2.21
## [1] 2.212573
hist(x, breaks = 8, col = "skyblue", border = "white",
     main = "Histogram Durasi Penggunaan", xlab = "Menit")
abline(v = c(mean(x), median(x)), col = c("red", "blue"), lwd = 2, lty = 2)
legend("topright", legend = c("Mean", "Median"),
       col = c("red", "blue"), lty = 2, lwd = 2)