library(ggplot2)
library(knitr)
Distribusi Poisson digunakan untuk memodelkan jumlah kejadian dalam rentang waktu atau ruang tertentu. Misalkan kita mensimulasikan jumlah pelanggan yang datang ke sebuah toko per jam dengan rata-rata (\(\lambda\)) = 15 pelanggan.
set.seed(123)
n_simulasi <- 1000
lambda_val <- 15
# Simulasi data
data_poisson <- rpois(n_simulasi, lambda = lambda_val)
mean_poisson <- mean(data_poisson)
var_poisson <- var(data_poisson)
cat("Statistik Empiris (Hasil Simulasi):\n")
## Statistik Empiris (Hasil Simulasi):
cat("- Rata-rata (Mean):", mean_poisson, "\n")
## - Rata-rata (Mean): 15.01
cat("- Varians :", var_poisson, "\n")
## - Varians : 15.12302
cat("- Parameter Target (Lambda):", lambda_val, "\n")
## - Parameter Target (Lambda): 15
# Visualisasi
hist(data_poisson, breaks = 20, col = "skyblue", main = "Simulasi Distribusi Poisson (n=1000)",
xlab = "Jumlah Pelanggan per Jam", ylab = "Frekuensi")
abline(v = mean(data_poisson), col = "red", lwd = 2, lty = 2)
Interpretasi: Berdasarkan output empiris di atas, rata-rata jumlah pelanggan dari 1.000 simulasi adalah 15.01. Hasil ini sangat mendekati parameter \(\lambda = 15\). Selain itu, pada distribusi Poisson, nilai rata-rata dan varians seharusnya hampir sama. Secara empiris, varians kita adalah 15.123, yang membuktikan bahwa simulasi telah berjalan sesuai dengan karakteristik distribusi Poisson.
Distribusi Normal memodelkan variabel yang memiliki sebaran simetris di sekitar rata-rata. Misalkan kita mensimulasikan tinggi badan pria di suatu daerah dengan rata-rata (\(\mu\)) = 170 cm dan standar deviasi (\(\sigma\)) = 7 cm.
# Simulasi data
data_normal <- rnorm(n_simulasi, mean = 170, sd = 7)
mean_norm <- mean(data_normal)
sd_norm <- sd(data_normal)
cat("Statistik Empiris (Hasil Simulasi):\n")
## Statistik Empiris (Hasil Simulasi):
cat("- Rata-rata (Mean) :", round(mean_norm, 4), "\n")
## - Rata-rata (Mean) : 170.1084
cat("- Standar Deviasi (SD) :", round(sd_norm, 4), "\n")
## - Standar Deviasi (SD) : 6.8673
cat("- Target: Mean=170, SD=7\n")
## - Target: Mean=170, SD=7
# Visualisasi
plot(density(data_normal), main = "Simulasi Distribusi Normal Tinggi Badan",
col = "darkgreen", lwd = 2, xlab = "Tinggi Badan (cm)")
polygon(density(data_normal), col = "lightgreen", border = "darkgreen")
Interpretasi: Hasil perhitungan empiris menunjukkan rata-rata tinggi badan sebesar 170.11 cm dengan standar deviasi 6.87 cm. Hasil ini menunjukkan deviasi yang sangat kecil dari parameter target (\(\mu=170, \sigma=7\)), sehingga data simulasi ini valid untuk merepresentasikan populasi tinggi badan pria sesuai asumsi distribusi normal.
Masalah: Sebuah Coffee Shop ingin mengetahui performa layanan mereka pada jam sibuk (08:00 - 09:00).
# Simulasi kedatangan selama 30 hari pada jam yang sama
hari <- 30
kedatangan_harian <- rpois(hari, lambda = 25)
cat("Rata-rata kedatangan pelanggan per jam selama 30 hari:", mean(kedatangan_harian), "\n")
## Rata-rata kedatangan pelanggan per jam selama 30 hari: 23.5
Kita akan mensimulasikan waktu pembuatan kopi untuk 100 pesanan pertama.
n_pesanan <- 100
waktu_service <- rexp(n_pesanan, rate = 1/3) # Rata-rata 3 menit
# Menghitung statistik deskriptif waktu pelayanan
summary_service <- data.frame(
Min = min(waktu_service),
Mean = mean(waktu_service),
Max = max(waktu_service)
)
knitr::kable(summary_service, caption = "Statistik Waktu Pelayanan (Menit)")
| Min | Mean | Max |
|---|---|---|
| 0.0099568 | 3.075161 | 19.43072 |
Berapa probabilitas seorang pelanggan dilayani dalam waktu kurang dari 2 menit?
# Menghitung proporsi dari data simulasi
prob_cepat <- mean(waktu_service < 2)
cat("Probabilitas pelayanan < 2 menit berdasarkan simulasi:", round(prob_cepat * 100, 2), "%\n")
## Probabilitas pelayanan < 2 menit berdasarkan simulasi: 51 %
Interpretasi Hasil:
Simulasi variabel random memungkinkan kita untuk memprediksi perilaku sistem nyata tanpa harus melakukan observasi fisik yang mahal. Dengan memahami distribusi Poisson (Diskrit) dan Eksponensial/Normal (Kontinu), kita dapat melakukan perencanaan kapasitas bisnis yang lebih akurat.