Dalam pemodelan sistem dan simulasi, sering kali data mentah yang kita temukan di lapangan tidak mengikuti distribusi normal. Namun, untuk melakukan inferensi atau estimasi terhadap parameter populasi, kita sangat bergantung pada sifat-sifat distribusi normal.
Dasar dari pendekatan ini adalah Teori Limit Pusat (Central Limit Theorem/CLT). Teori ini menyatakan bahwa jika kita mengambil sampel acak dalam jumlah yang cukup besar dari suatu populasi (apapun bentuk distribusinya), maka distribusi dari rata-rata sampel tersebut akan mendekati distribusi normal. Sebagai permisalan, jika kita mengamati jumlah kecelakaan di jalan raya (distribusi Poisson) atau waktu tunggu pelanggan (distribusi Eksponensial), rata-rata dari pengamatan berulang tersebut akan tetap membentuk kurva lonceng seiring bertambahnya ukuran sampel (\(n\)).
Laporan ini akan menguji dua hal utama:
Untuk membuktikan validitas teori ini, kita akan melakukan simulasi pengambilan sampel secara bertahap menggunakan distribusi Eksponensial yang bersifat miring (skewed). Kita akan melihat bagaimana bentuk distribusi rata-ratanya berubah seiring meningkatnya ukuran sampel (\(n\)).
set.seed(123)
populasi_eksponensial <- rexp(10000, rate = 0.2)
n_simulasi <- 1000
rata_n2 <- replicate(n_simulasi, mean(sample(populasi_eksponensial, size = 2, replace = TRUE)))
rata_n10 <- replicate(n_simulasi, mean(sample(populasi_eksponensial, size = 10, replace = TRUE)))
rata_n30 <- replicate(n_simulasi, mean(sample(populasi_eksponensial, size = 30, replace = TRUE)))
rata_n100 <- replicate(n_simulasi, mean(sample(populasi_eksponensial, size = 100, replace = TRUE)))
par(mfrow=c(2,2))
hist(rata_n2, main="n = 2", col="lightpink", border="white", xlab="Rata-rata")
hist(rata_n10, main="n = 10", col="lightblue", border="white", xlab="Rata-rata")
hist(rata_n30, main="n = 30", col="lightgreen", border="white", xlab="Rata-rata")
hist(rata_n100, main="n = 100", col="gold", border="white", xlab="Rata-rata")
par(mfrow=c(1,1))
Interpretasi: Melalui simulasi di atas, terlihat jelas bahwa meskipun data awal (populasi) diambil dari distribusi eksponensial yang sangat miring, distribusi dari rata-rata sampelnya perlahan berubah menjadi bentuk lonceng yang simetris (Normal) saat jumlah sampel meningkat dari \(n=2\) hingga \(n=100\). Ini memberikan validasi bahwa untuk sampel berukuran besar (\(n \ge 30\)), kita dapat mengasumsikan normalitas pada rata-rata sampel.
Berdasarkan validasi CLT di atas, berikut adalah algoritma atau langkah sistematis dalam melakukan estimasi parameter:
Sering terjadi kesalahpahaman bahwa SK 95% berarti ada peluang 95% parameter berada di dalam selang tersebut. Secara statistik, artinya adalah: Jika kita melakukan 100 kali eksperimen, maka 95 di antaranya akan memuat nilai parameter yang sebenarnya (\(\mu\)).
k <- 100 # jumlah eksperimen/ulangan
n <- 100 # ukuran sampel per eksperimen
mu <- 50 # parameter populasi asli
std <- 10
alpha <- 0.05
set.seed(123)
# Bangkitkan 100 kelompok sampel
sampel_mat <- matrix(rnorm(n*k, mu, std), k)
xbar <- apply(sampel_mat, 1, mean)
se <- apply(sampel_mat, 1, sd) / sqrt(n)
z_val <- qnorm(1 - alpha/2)
# Tentukan apakah SK memuat mu
batas_bawah <- xbar - z_val * se
batas_atas <- xbar + z_val * se
is_covered <- (batas_bawah < mu & mu < batas_atas)
# Visualisasi Matplot
matplot(rbind(batas_bawah, batas_atas), rbind(1:k, 1:k),
col=ifelse(is_covered, "blue", "red"), type = "l", lty = 1,
main='Visualisasi 100 Selang Kepercayaan (95%)',
xlab='Rentang Nilai (Garis Vertikal = Mu)', ylab='Eksperimen ke-')
abline(v=mu, col="black", lwd=2, lty=2)
Interpretasi: Garis biru melambangkan SK yang berhasil menangkap nilai \(\mu=50\), sedangkan garis merah melambangkan SK yang gagal. Terlihat bahwa dari 100 kali percobaan, sebagian besar (sekitar 95%) berhasil menangkap nilai parameter asli. Ini membuktikan bahwa metode estimasi kita memiliki tingkat keandalan yang tinggi.
Kita akan menerapkan langkah-langkah di atas pada data observasi waktu layanan pelanggan yang aslinya tidak berdistribusi normal.
Manajemen rumah sakit ingin mengestimasi rata-rata waktu layanan pasien di IGD. Diambil 100 sampel data secara acak (dalam menit). Karena ukuran sampel \(n=100 > 30\), maka berdasarkan CLT, kita dapat melakukan estimasi interval dengan aman.
# 1. Data Observasi (n=100)
set.seed(42)
waktu_igd <- rexp(100, rate = 1/15)
# 2. Perhitungan Statistik
m <- mean(waktu_igd)
s <- sd(waktu_igd)
se <- s / sqrt(length(waktu_igd))
t_crit <- qt(0.975, df = length(waktu_igd)-1)
# 3. Hasil Estimasi
bawah_igd <- m - t_crit * se
atas_igd <- m + t_crit * se
cat("Rata-rata Sampel :", round(m, 2), "menit\n")
## Rata-rata Sampel : 16.86 menit
cat("Interval Kepercayaan : [", round(bawah_igd, 2), ",", round(atas_igd, 2), "]")
## Interval Kepercayaan : [ 12.38 , 21.34 ]
Interpretasi: Berdasarkan sampel 100 pasien, rata-rata waktu layanan adalah 16.86 menit. Secara statistik, kita yakin 95% bahwa rata-rata waktu layanan populasi IGD yang sebenarnya berada di rentang 12.38 hingga 21.34 menit. Nilai Standard Error yang relatif kecil menunjukkan bahwa estimasi ini memiliki presisi yang cukup tinggi.
Berdasarkan hasil praktikum yang telah dilakukan, dapat ditarik beberapa kesimpulan utama sebagai berikut: