Simulasi ini mempelajari pengaruh tiga faktor terhadap lebar interval kepercayaan 95%:
# Fungsi untuk menghitung interval kepercayaan 95% dengan σ diketahui (Z-interval)
IC_sigma_diketahui <- function(n, sigma) {
# Menghitung lebar interval kepercayaan 95% = 2 * 1.96 * (sigma/sqrt(n))
lebar <- 2 * 1.96 * (sigma/sqrt(n))
return(lebar)
}
# Fungsi untuk menghitung interval kepercayaan 95% dengan σ tidak diketahui (t-interval)
IC_sigma_tidak_diketahui <- function(n, s) {
# Menggunakan distribusi t dengan derajat kebebasan n-1
t_value <- qt(0.975, df = n-1)
# Menghitung lebar interval kepercayaan 95% = 2 * t_value * (s/sqrt(n))
lebar <- 2 * t_value * (s/sqrt(n))
return(lebar)
}
# Definisi faktor dan level
ukuran_sampel <- c(5, 30, 100)
standar_deviasi <- c(10, 50, 90)
pengetahuan_sd <- c("Diketahui", "Tidak Diketahui")
# Persiapkan data frame untuk menyimpan hasil
hasil_simulasi <- expand.grid(
ukuran_sampel = ukuran_sampel,
standar_deviasi = standar_deviasi,
pengetahuan_sd = pengetahuan_sd
)
# Tambahkan kolom untuk menyimpan lebar interval kepercayaan
hasil_simulasi$lebar_IC <- NA
# Lakukan simulasi
for(i in 1:nrow(hasil_simulasi)) {
n <- hasil_simulasi$ukuran_sampel[i]
sd_value <- hasil_simulasi$standar_deviasi[i]
pengetahuan <- hasil_simulasi$pengetahuan_sd[i]
if(pengetahuan == "Diketahui") {
hasil_simulasi$lebar_IC[i] <- IC_sigma_diketahui(n, sd_value)
} else {
hasil_simulasi$lebar_IC[i] <- IC_sigma_tidak_diketahui(n, sd_value)
}
}
# Tampilkan hasil
kable(hasil_simulasi, caption = "Hasil Simulasi Lebar Interval Kepercayaan 95%")
ukuran_sampel | standar_deviasi | pengetahuan_sd | lebar_IC |
---|---|---|---|
5 | 10 | Diketahui | 17.530773 |
30 | 10 | Diketahui | 7.156908 |
100 | 10 | Diketahui | 3.920000 |
5 | 50 | Diketahui | 87.653865 |
30 | 50 | Diketahui | 35.784540 |
100 | 50 | Diketahui | 19.600000 |
5 | 90 | Diketahui | 157.776957 |
30 | 90 | Diketahui | 64.412173 |
100 | 90 | Diketahui | 35.280000 |
5 | 10 | Tidak Diketahui | 24.833280 |
30 | 10 | Tidak Diketahui | 7.468123 |
100 | 10 | Tidak Diketahui | 3.968434 |
5 | 50 | Tidak Diketahui | 124.166400 |
30 | 50 | Tidak Diketahui | 37.340614 |
100 | 50 | Tidak Diketahui | 19.842170 |
5 | 90 | Tidak Diketahui | 223.499520 |
30 | 90 | Tidak Diketahui | 67.213105 |
100 | 90 | Tidak Diketahui | 35.715905 |
ggplot(hasil_simulasi, aes(x = factor(ukuran_sampel), y = lebar_IC, color = factor(standar_deviasi),
shape = pengetahuan_sd, group = interaction(standar_deviasi, pengetahuan_sd))) +
geom_line() +
geom_point(size = 3) +
labs(x = "Ukuran Sampel (n)", y = "Lebar Interval Kepercayaan 95%",
title = "Pengaruh Ukuran Sampel terhadap Lebar Interval Kepercayaan",
color = "Standar Deviasi", shape = "Pengetahuan SD") +
theme_minimal() +
facet_wrap(~standar_deviasi, scales = "free_y",
labeller = labeller(standar_deviasi = function(x) paste("SD =", x)))
## Pengaruh Standar Deviasi pada Lebar Interval Kepercayaan
ggplot(hasil_simulasi, aes(x = factor(standar_deviasi), y = lebar_IC, color = factor(ukuran_sampel),
shape = pengetahuan_sd, group = interaction(ukuran_sampel, pengetahuan_sd))) +
geom_line() +
geom_point(size = 3) +
labs(x = "Standar Deviasi", y = "Lebar Interval Kepercayaan 95%",
title = "Pengaruh Standar Deviasi terhadap Lebar Interval Kepercayaan",
color = "Ukuran Sampel", shape = "Pengetahuan SD") +
theme_minimal() +
facet_wrap(~ukuran_sampel, scales = "free_y",
labeller = labeller(ukuran_sampel = function(x) paste("n =", x)))
ggplot(hasil_simulasi, aes(x = interaction(ukuran_sampel, standar_deviasi), y = lebar_IC,
fill = pengetahuan_sd)) +
geom_bar(stat = "identity", position = "dodge") +
labs(x = "Kombinasi Ukuran Sampel dan Standar Deviasi (n, SD)",
y = "Lebar Interval Kepercayaan 95%",
title = "Perbandingan Lebar Interval Kepercayaan berdasarkan Pengetahuan SD Populasi",
fill = "Pengetahuan SD") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
## Heatmap Lebar Interval Kepercayaan
hasil_wide <- hasil_simulasi %>%
pivot_wider(names_from = pengetahuan_sd, values_from = lebar_IC)
# Plot heatmap untuk σ diketahui
p1 <- ggplot(hasil_wide, aes(x = factor(ukuran_sampel), y = factor(standar_deviasi))) +
geom_tile(aes(fill = Diketahui), color = "white") +
scale_fill_gradient(low = "lightblue", high = "darkblue") +
labs(x = "Ukuran Sampel (n)", y = "Standar Deviasi",
title = "Lebar IC 95% (σ Diketahui)",
fill = "Lebar IC") +
theme_minimal() +
geom_text(aes(label = round(Diketahui, 1)), color = "white")
# Plot heatmap untuk σ tidak diketahui
p2 <- ggplot(hasil_wide, aes(x = factor(ukuran_sampel), y = factor(standar_deviasi))) +
geom_tile(aes(fill = `Tidak Diketahui`), color = "white") +
scale_fill_gradient(low = "lightgreen", high = "darkgreen") +
labs(x = "Ukuran Sampel (n)", y = "Standar Deviasi",
title = "Lebar IC 95% (σ Tidak Diketahui)",
fill = "Lebar IC") +
theme_minimal() +
geom_text(aes(label = round(`Tidak Diketahui`, 1)), color = "white")
gridExtra::grid.arrange(p1, p2, ncol = 2)
# Persentase peningkatan lebar ketika σ tidak diketahui
hasil_wide$peningkatan_persen <- (hasil_wide$`Tidak Diketahui` - hasil_wide$Diketahui) / hasil_wide$Diketahui * 100
# Tampilkan tabel hasil analisis
kable(hasil_wide %>% select(ukuran_sampel, standar_deviasi, Diketahui, `Tidak Diketahui`, peningkatan_persen),
caption = "Persentase Peningkatan Lebar Interval Kepercayaan ketika σ Tidak Diketahui",
col.names = c("Ukuran Sampel", "Standar Deviasi", "IC (σ Diketahui)", "IC (σ Tidak Diketahui)", "Peningkatan (%)"))
Ukuran Sampel | Standar Deviasi | IC (σ Diketahui) | IC (σ Tidak Diketahui) | Peningkatan (%) |
---|---|---|---|---|
5 | 10 | 17.530773 | 24.833280 | 41.655363 |
30 | 10 | 7.156908 | 7.468123 | 4.348451 |
100 | 10 | 3.920000 | 3.968434 | 1.235559 |
5 | 50 | 87.653865 | 124.166400 | 41.655363 |
30 | 50 | 35.784540 | 37.340614 | 4.348451 |
100 | 50 | 19.600000 | 19.842170 | 1.235559 |
5 | 90 | 157.776957 | 223.499520 | 41.655363 |
30 | 90 | 64.412173 | 67.213105 | 4.348451 |
100 | 90 | 35.280000 | 35.715905 | 1.235559 |
Berdasarkan simulasi yang telah dilakukan, dapat disimpulkan:
Simulasi ini menunjukkan bahwa:
Untuk praktik penelitian, hasil ini menyarankan bahwa: - Jika variabilitas data tinggi, ukuran sampel yang lebih besar sangat diperlukan untuk mencapai presisi yang diinginkan. - Untuk sampel kecil (n<30), penggunaan distribusi t lebih tepat karena memberikan interval kepercayaan yang lebih konservatif. - Pengetahuan tentang standar deviasi populasi tidak terlalu penting jika ukuran sampel cukup besar.