Tugas ini bertujuan mempelajari pengaruh tiga faktor terhadap lebar Interval Kepercayaan (IK) 95% melalui simulasi. Ketiga faktor yang dikaji adalah:
| Faktor | Level |
|---|---|
| Ukuran Sampel (\(n\)) | 5, 30, 100 |
| Variabilitas Data (\(\sigma\) atau \(s\)) | 10, 50, 90 |
| Pengetahuan SD Populasi | Diketahui → distribusi Z; Tidak Diketahui → distribusi T |
Rumus lebar IK:
\[\text{Lebar IK} = 2 \times Z_{\alpha/2} \times \frac{\sigma}{\sqrt{n}} \quad \text{(jika } \sigma \text{ diketahui)}\]
\[\text{Lebar IK} = 2 \times t_{\alpha/2, df} \times \frac{s}{\sqrt{n}} \quad \text{(jika } \sigma \text{ tidak diketahui)}\]
set.seed(123)
mu <- 100 # mean populasi (tetap)
k <- 1000 # banyak ulangan per kombinasi
hitung_lebar_CI <- function(n, sigma, diketahui = TRUE, mu = 100, k = 1000) {
lebar_vec <- numeric(k)
for (i in 1:k) {
sampel <- rnorm(n, mean = mu, sd = sigma)
xbar <- mean(sampel)
s <- sd(sampel)
if (diketahui) {
z <- qnorm(0.975)
ME <- z * (sigma / sqrt(n))
} else {
t_val <- qt(0.975, df = n - 1)
ME <- t_val * (s / sqrt(n))
}
lebar_vec[i] <- 2 * ME
}
return(mean(lebar_vec))
}
n_levels <- c(5, 30, 100)
sd_levels <- c(10, 50, 90)
hasil_list <- list()
idx <- 1
for (n in n_levels) {
for (sd in sd_levels) {
lebar_Z <- hitung_lebar_CI(n, sd, diketahui = TRUE)
lebar_T <- hitung_lebar_CI(n, sd, diketahui = FALSE)
hasil_list[[idx]] <- data.frame(
n = n,
SD = sd,
Lebar_CI_Z = round(lebar_Z, 4),
Lebar_CI_T = round(lebar_T, 4),
Selisih_TZ = round(lebar_T - lebar_Z, 4)
)
idx <- idx + 1
}
}
hasil <- do.call(rbind, hasil_list)
knitr::kable(hasil,
col.names = c("n", "SD (σ/s)",
"Lebar CI - Z (σ diketahui)",
"Lebar CI - T (σ tdk diketahui)",
"Selisih (T - Z)"),
align = "ccccc",
caption = "Rata-rata Lebar Interval Kepercayaan 95% dari 1.000 Simulasi")
| n | SD (σ/s) | Lebar CI - Z (σ diketahui) | Lebar CI - T (σ tdk diketahui) | Selisih (T - Z) |
|---|---|---|---|---|
| 5 | 10 | 17.5305 | 23.5404 | 6.0100 |
| 5 | 50 | 87.6523 | 116.9299 | 29.2776 |
| 5 | 90 | 157.7741 | 209.9368 | 52.1627 |
| 30 | 10 | 7.1568 | 7.3963 | 0.2395 |
| 30 | 50 | 35.7839 | 37.3613 | 1.5774 |
| 30 | 90 | 64.4110 | 66.9226 | 2.5116 |
| 100 | 10 | 3.9199 | 3.9614 | 0.0415 |
| 100 | 50 | 19.5996 | 19.7446 | 0.1450 |
| 100 | 90 | 35.2794 | 35.6571 | 0.3778 |
lebar_by_n_Z <- sapply(n_levels, function(n)
hitung_lebar_CI(n, sigma = 50, diketahui = TRUE))
lebar_by_n_T <- sapply(n_levels, function(n)
hitung_lebar_CI(n, sigma = 50, diketahui = FALSE))
plot(n_levels, lebar_by_n_Z,
type = "b", col = "steelblue", pch = 16, lwd = 2,
ylim = range(c(lebar_by_n_Z, lebar_by_n_T)) * c(0.85, 1.15),
xlab = "Ukuran Sampel (n)", ylab = "Rata-rata Lebar CI",
main = "Pengaruh Ukuran Sampel terhadap Lebar CI\n(SD = 50)")
lines(n_levels, lebar_by_n_T, type = "b", col = "tomato", pch = 17, lwd = 2)
legend("topright",
legend = c("Z (σ diketahui)", "T (σ tidak diketahui)"),
col = c("steelblue", "tomato"), pch = c(16, 17), lty = 1, lwd = 2)
lebar_by_sd_Z <- sapply(sd_levels, function(sd)
hitung_lebar_CI(n = 30, sigma = sd, diketahui = TRUE))
lebar_by_sd_T <- sapply(sd_levels, function(sd)
hitung_lebar_CI(n = 30, sigma = sd, diketahui = FALSE))
plot(sd_levels, lebar_by_sd_Z,
type = "b", col = "steelblue", pch = 16, lwd = 2,
ylim = range(c(lebar_by_sd_Z, lebar_by_sd_T)) * c(0.85, 1.15),
xlab = "Standar Deviasi (σ/s)", ylab = "Rata-rata Lebar CI",
main = "Pengaruh Variabilitas Data terhadap Lebar CI\n(n = 30)")
lines(sd_levels, lebar_by_sd_T, type = "b", col = "tomato", pch = 17, lwd = 2)
legend("topleft",
legend = c("Z (σ diketahui)", "T (σ tidak diketahui)"),
col = c("steelblue", "tomato"), pch = c(16, 17), lty = 1, lwd = 2)
selisih <- sapply(n_levels, function(n)
hitung_lebar_CI(n, sigma = 50, diketahui = FALSE) -
hitung_lebar_CI(n, sigma = 50, diketahui = TRUE))
barplot(selisih,
names.arg = paste0("n = ", n_levels),
col = c("salmon", "coral", "lightcoral"),
main = "Selisih Lebar CI: T minus Z\n(SD = 50)",
ylab = "Selisih Lebar CI",
xlab = "Ukuran Sampel")
Semakin besar \(n\), lebar IK semakin sempit. Hal ini karena margin of error berbanding terbalik dengan \(\sqrt{n}\):
\[ME \propto \frac{1}{\sqrt{n}}\]
Dengan \(n\) yang besar, estimasi rata-rata sampel lebih presisi sehingga rentang nilai yang diperlukan untuk menangkap parameter populasi menjadi lebih kecil.
Semakin besar SD, lebar IK semakin lebar. Variabilitas data yang tinggi mencerminkan ketidakpastian yang lebih besar dalam populasi, sehingga interval harus diperlebar agar tetap memiliki tingkat kepercayaan 95%.
\[ME \propto \sigma \text{ (atau } s\text{)}\]
IK menggunakan distribusi T (ketika \(\sigma\) tidak diketahui) selalu lebih lebar dibanding IK menggunakan distribusi Z (ketika \(\sigma\) diketahui). Selisihnya:
kesimpulan <- data.frame(
Faktor = c("Ukuran Sampel (n) naik",
"Standar Deviasi (σ/s) naik",
"Menggunakan T vs Z"),
Dampak_pada_Lebar_CI = c("Semakin SEMPIT",
"Semakin LEBAR",
"T selalu lebih LEBAR dari Z"),
Alasan = c("ME ∝ 1/√n",
"ME ∝ σ",
"Nilai kritis t > z, terutama saat n kecil")
)
knitr::kable(kesimpulan,
col.names = c("Faktor", "Dampak pada Lebar CI", "Alasan"),
align = "lll")
| Faktor | Dampak pada Lebar CI | Alasan |
|---|---|---|
| Ukuran Sampel (n) naik | Semakin SEMPIT | ME ∝ 1/√n |
| Standar Deviasi (σ/s) naik | Semakin LEBAR | ME ∝ σ |
| Menggunakan T vs Z | T selalu lebih LEBAR dari Z | Nilai kritis t > z, terutama saat n kecil |