Dalam ranah statistika inferensial, salah satu tantangan terbesar bagi peneliti adalah melakukan estimasi parameter populasi secara akurat berdasarkan keterbatasan data sampel yang dimiliki di lapangan. Interval Kepercayaan (Confidence Interval) hadir sebagai instrumen krusial untuk mengukur sejauh mana tingkat ketidakpastian (uncertainty) dari estimasi titik tersebut. Presisi dari instrumen ini umumnya direfleksikan melalui lebar rentang interval yang dihasilkan; semakin sempit rentang tersebut, semakin tinggi tingkat kepastian informasi yang diperoleh.
Secara teoretis, variasi lebar interval ini dipengaruhi oleh interaksi dinamis antara volume informasi (ukuran sampel), karakteristik internal data (variabilitas), serta asumsi batasan parameter populasi. Namun, pemahaman yang murni bersandar pada rumus analitis matematis sering kali gagal memberikan intuisi praktis bagi para analis data.
Oleh karena itu, eksperimen simulasi ini dirancang menggunakan Pendekatan Monte Carlo untuk mengevaluasi secara empiris sensitivitas lebar Interval Kepercayaan 95% di bawah kendali skenario faktorial penuh. Studi ini menguji tiga dimensi parameter kritis, yaitu:
Melalui simulasi dengan replikasi empiris yang masif ini, diharapkan dapat dipetakan secara visual dan komprehensif bagaimana batas-batas teoretis tersebut bermanifestasi dalam data acak, sekaligus memberikan landasan intuitif yang kuat bagi pengambilan keputusan berbasis data sampel.
Eksperimen ini menggunakan replikasi simulasi sebanyak \(M = 500\) kali untuk setiap kombinasi level faktor agar mendapatkan estimasi nilai rata-rata lebar interval yang stabil
set.seed(42)
ukuran_sampel <- c(5, 30, 100)
variabilitas <- c(10, 50, 90)
pengetahuan <- c("Diketahui", "Tidak Diketahui")
df_desain <- expand.grid(n = ukuran_sampel, sigma = variabilitas, status = pengetahuan)
df_desain$Rata_Lebar_Interval <- 0
M <- 500
for(i in 1:nrow(df_desain)) {
current_n <- df_desain$n[i]
current_sigma <- df_desain$sigma[i]
current_status <- df_desain$status[i]
lebar_replikasi <- numeric(M)
for(m in 1:M) {
data_sampel <- rnorm(n = current_n, mean = 100, sd = current_sigma)
s_sampel <- sd(data_sampel)
if(current_status == "Diketahui") {
margin_error <- qnorm(0.975) * (current_sigma / sqrt(current_n))
} else {
margin_error <- qt(0.975, df = current_n - 1) * (s_sampel / sqrt(current_n))
}
lebar_replikasi[m] <- 2 * margin_error
}
df_desain$Rata_Lebar_Interval[i] <- round(mean(lebar_replikasi), 4)
}
df_desain <- df_desain[order(df_desain$status, df_desain$sigma, df_desain$n), ]
knitr::kable(df_desain[, c("n", "sigma", "status", "Rata_Lebar_Interval")],
col.names = c("Ukuran Sampel (n)", "Variabilitas (Sigma)", "Pengetahuan SD", "Rata-rata Lebar Interval"),
caption = "Tabel Pengaruh Skenario Sifat Data terhadap Lebar Interval")
| Ukuran Sampel (n) | Variabilitas (Sigma) | Pengetahuan SD | Rata-rata Lebar Interval |
|---|---|---|---|
| 5 | 10 | Diketahui | 17.5305 |
| 30 | 10 | Diketahui | 7.1568 |
| 100 | 10 | Diketahui | 3.9199 |
| 5 | 50 | Diketahui | 87.6523 |
| 30 | 50 | Diketahui | 35.7839 |
| 100 | 50 | Diketahui | 19.5996 |
| 5 | 90 | Diketahui | 157.7741 |
| 30 | 90 | Diketahui | 64.4110 |
| 100 | 90 | Diketahui | 35.2794 |
| 5 | 10 | Tidak Diketahui | 22.8607 |
| 30 | 10 | Tidak Diketahui | 7.4440 |
| 100 | 10 | Tidak Diketahui | 3.9686 |
| 5 | 50 | Tidak Diketahui | 121.3562 |
| 30 | 50 | Tidak Diketahui | 36.9378 |
| 100 | 50 | Tidak Diketahui | 19.6748 |
| 5 | 90 | Tidak Diketahui | 203.1554 |
| 30 | 90 | Tidak Diketahui | 66.5383 |
| 100 | 90 | Tidak Diketahui | 35.5509 |
par(mfrow = c(1, 2), mar = c(4, 4, 3, 1))
df_diketahui <- subset(df_desain, status == "Diketahui")
plot(1, type = "n", xlim = c(1, 3), ylim = c(0, max(df_desain$Rata_Lebar_Interval)),
xaxt = "n", xlab = "Ukuran Sampel (n)", ylab = "Rata-rata Lebar Interval",
main = "SD Populasi: Diketahui")
axis(1, at = 1:3, labels = c("5", "30", "100"))
lines(1:3, df_diketahui$Rata_Lebar_Interval[df_diketahui$sigma == 10], col = "darkgreen", type = "b", lwd = 2, pch = 16)
lines(1:3, df_diketahui$Rata_Lebar_Interval[df_diketahui$sigma == 50], col = "blue", type = "b", lwd = 2, pch = 17)
lines(1:3, df_diketahui$Rata_Lebar_Interval[df_diketahui$sigma == 90], col = "red", type = "b", lwd = 2, pch = 18)
legend("topright", legend = c("Sigma 10", "Sigma 50", "Sigma 90"),
col = c("darkgreen", "blue", "red"), lty = 1, pch = 16:18, cex = 0.8)
df_tidak_diketahui <- subset(df_desain, status == "Tidak Diketahui")
plot(1, type = "n", xlim = c(1, 3), ylim = c(0, max(df_desain$Rata_Lebar_Interval)),
xaxt = "n", xlab = "Ukuran Sampel (n)", ylab = "Rata-rata Lebar Interval",
main = "SD Populasi: Tidak Diketahui")
axis(1, at = 1:3, labels = c("5", "30", "100"))
lines(1:3, df_tidak_diketahui$Rata_Lebar_Interval[df_tidak_diketahui$sigma == 10], col = "darkgreen", type = "b", lwd = 2, pch = 16)
lines(1:3, df_tidak_diketahui$Rata_Lebar_Interval[df_tidak_diketahui$sigma == 50], col = "blue", type = "b", lwd = 2, pch = 17)
lines(1:3, df_tidak_diketahui$Rata_Lebar_Interval[df_tidak_diketahui$sigma == 90], col = "red", type = "b", lwd = 2, pch = 18)
legend("topright", legend = c("Sigma 10", "Sigma 50", "Sigma 90"),
col = c("darkgreen", "blue", "red"), lty = 1, pch = 16:18, cex = 0.8)
par(mfrow = c(1, 1))
Hasil simulasi empiris di atas menunjukkan pembuktian teori ketidakpastian estimasi sebagai berikut: