Praktikum ini bertujuan untuk mempelajari bagaimana ukuran sampel dan variabilitas data memengaruhi lebar interval kepercayaan (Confidence Interval/CI). Selain itu, praktikum ini juga membandingkan hasil interval kepercayaan ketika standar deviasi populasi diketahui (menggunakan distribusi Z) dan ketika standar deviasi populasi tidak diketahui (menggunakan distribusi t).
Interval kepercayaan merupakan suatu rentang nilai yang digunakan untuk memperkirakan parameter populasi berdasarkan data sampel. Lebar interval kepercayaan dipengaruhi oleh beberapa faktor, di antaranya ukuran sampel, tingkat variasi data (standar deviasi), dan tingkat kepercayaan yang digunakan.
Secara umum, semakin besar ukuran sampel maka interval kepercayaan akan semakin sempit karena estimasi menjadi lebih presisi. Sebaliknya, semakin besar standar deviasi maka interval kepercayaan akan semakin lebar karena data memiliki penyebaran yang lebih besar.
Parameter yang digunakan pada simulasi ini adalah sebagai berikut:
| Parameter | Nilai |
|---|---|
| Ukuran sampel (n) | 10, 30, 100 |
| Standar deviasi (SD) | 10, 50, 80 |
| Mean populasi | 75 |
| Tingkat kepercayaan | 95% |
Lebar interval kepercayaan dihitung menggunakan rumus berikut.
\[ CI = \bar{x} \pm z_{\alpha/2}\frac{\sigma}{\sqrt{n}} \]
\[ CI = \bar{x} \pm t_{\alpha/2,\,n-1}\frac{s}{\sqrt{n}} \]
Pada praktikum ini akan dilakukan simulasi terhadap berbagai kombinasi ukuran sampel dan standar deviasi untuk melihat perubahan lebar interval kepercayaan pada kedua kondisi tersebut.
library(dplyr)
library(ggplot2)
library(knitr)
Fungsi berikut digunakan untuk membangkitkan data acak dari distribusi normal dan menghitung interval kepercayaan menggunakan distribusi Z maupun distribusi t.
Fungsi berikut digunakan untuk membangkitkan data acak dari distribusi normal dan menghitung interval kepercayaan menggunakan distribusi Z maupun distribusi t.
simulasi_ci <- function(n, sd_pop, mu = 75, conf = 0.95){
# Membuat data sampel
sampel <- rnorm(
n = n,
mean = mu,
sd = sd_pop
)
# Statistik sampel
rata2 <- mean(sampel)
s <- sd(sampel)
alpha <- 1 - conf
# Interval kepercayaan Z
z <- qnorm(1 - alpha/2)
moe_z <- z * (sd_pop / sqrt(n))
lower_z <- rata2 - moe_z
upper_z <- rata2 + moe_z
# Interval kepercayaan t
t <- qt(1 - alpha/2, df = n - 1)
moe_t <- t * (s / sqrt(n))
lower_t <- rata2 - moe_t
upper_t <- rata2 + moe_t
data.frame(
n = n,
SD = sd_pop,
Mean = round(rata2, 2),
CI_Z_Bawah = round(lower_z, 2),
CI_Z_Atas = round(upper_z, 2),
Lebar_Z = round(upper_z - lower_z, 2),
CI_T_Bawah = round(lower_t, 2),
CI_T_Atas = round(upper_t, 2),
Lebar_T = round(upper_t - lower_t, 2)
)
}
set.seed(123)
ukuran_sampel <- c(10, 30, 100)
standar_deviasi <- c(10, 50, 80)
kombinasi <- expand.grid(
n = ukuran_sampel,
SD = standar_deviasi
)
hasil_simulasi <- data.frame()
for(i in 1:nrow(kombinasi)){
hasil <- simulasi_ci(
n = kombinasi$n[i],
sd_pop = kombinasi$SD[i]
)
hasil_simulasi <- rbind(
hasil_simulasi,
hasil
)
}
hasil_simulasi
## n SD Mean CI_Z_Bawah CI_Z_Atas Lebar_Z CI_T_Bawah CI_T_Atas Lebar_T
## 1 10 10 75.75 69.55 81.94 12.40 68.92 82.57 13.65
## 2 30 10 75.35 71.78 78.93 7.16 72.01 78.70 6.68
## 3 100 10 74.93 72.97 76.89 3.92 73.08 76.78 3.70
## 4 10 50 51.30 20.31 82.29 61.98 5.74 96.86 91.12
## 5 30 50 82.69 64.79 100.58 35.78 65.11 100.27 35.16
## 6 100 50 75.74 65.94 85.54 19.60 66.52 84.96 18.44
## 7 10 80 85.02 35.44 134.60 99.17 37.39 132.65 95.27
## 8 30 80 90.64 62.02 119.27 57.25 56.22 125.06 68.84
## 9 100 80 69.33 53.66 85.01 31.36 53.66 85.01 31.34
knitr::kable(
hasil_simulasi,
caption = "Hasil Simulasi Interval Kepercayaan"
)
| n | SD | Mean | CI_Z_Bawah | CI_Z_Atas | Lebar_Z | CI_T_Bawah | CI_T_Atas | Lebar_T |
|---|---|---|---|---|---|---|---|---|
| 10 | 10 | 75.75 | 69.55 | 81.94 | 12.40 | 68.92 | 82.57 | 13.65 |
| 30 | 10 | 75.35 | 71.78 | 78.93 | 7.16 | 72.01 | 78.70 | 6.68 |
| 100 | 10 | 74.93 | 72.97 | 76.89 | 3.92 | 73.08 | 76.78 | 3.70 |
| 10 | 50 | 51.30 | 20.31 | 82.29 | 61.98 | 5.74 | 96.86 | 91.12 |
| 30 | 50 | 82.69 | 64.79 | 100.58 | 35.78 | 65.11 | 100.27 | 35.16 |
| 100 | 50 | 75.74 | 65.94 | 85.54 | 19.60 | 66.52 | 84.96 | 18.44 |
| 10 | 80 | 85.02 | 35.44 | 134.60 | 99.17 | 37.39 | 132.65 | 95.27 |
| 30 | 80 | 90.64 | 62.02 | 119.27 | 57.25 | 56.22 | 125.06 | 68.84 |
| 100 | 80 | 69.33 | 53.66 | 85.01 | 31.36 | 53.66 | 85.01 | 31.34 |
Grafik berikut menunjukkan perubahan lebar interval kepercayaan terhadap ukuran sampel dengan standar deviasi tetap sebesar 50.
plot_n <- hasil_simulasi %>%
filter(SD == 50)
ggplot(plot_n,
aes(x = factor(n), y = Lebar_Z, group = 1)) +
geom_line(size = 1, color = "steelblue") +
geom_point(size = 3, color = "steelblue") +
geom_line(aes(y = Lebar_T),
color = "firebrick",
linetype = "dashed",
size = 1) +
geom_point(aes(y = Lebar_T),
color = "firebrick",
size = 3) +
labs(
title = "Pengaruh Ukuran Sampel terhadap Lebar Interval Kepercayaan",
x = "Ukuran Sampel (n)",
y = "Lebar Interval Kepercayaan"
) +
theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Semakin besar ukuran sampel, lebar interval kepercayaan semakin kecil. Hal ini menunjukkan bahwa estimasi menjadi lebih presisi ketika jumlah data meningkat.
Grafik berikut memperlihatkan perubahan lebar interval kepercayaan ketika standar deviasi populasi meningkat dengan ukuran sampel tetap sebesar 30.
plot_sd <- hasil_simulasi %>%
filter(n == 30)
ggplot(plot_sd,
aes(x = factor(SD), y = Lebar_Z, group = 1)) +
geom_line(size = 1, color = "darkgreen") +
geom_point(size = 3, color = "darkgreen") +
geom_line(aes(y = Lebar_T),
color = "orange",
linetype = "dashed",
size = 1) +
geom_point(aes(y = Lebar_T),
color = "orange",
size = 3) +
labs(
title = "Pengaruh Standar Deviasi terhadap Lebar Interval Kepercayaan",
x = "Standar Deviasi",
y = "Lebar Interval Kepercayaan"
) +
theme_minimal()
Semakin besar standar deviasi populasi, interval kepercayaan menjadi semakin lebar karena variasi data yang lebih tinggi meningkatkan ketidakpastian estimasi.
selisih <- hasil_simulasi %>%
filter(SD == 50) %>%
mutate(Selisih = Lebar_T - Lebar_Z)
ggplot(selisih,
aes(x = factor(n), y = Selisih)) +
geom_col(fill = "tomato") +
labs(
title = "Selisih Lebar Interval Kepercayaan (t - Z)",
x = "Ukuran Sampel",
y = "Selisih Lebar CI"
) +
theme_minimal()
Distribusi t menghasilkan interval kepercayaan yang sedikit lebih lebar dibandingkan distribusi Z, terutama pada ukuran sampel kecil. Ketika ukuran sampel semakin besar, perbedaan keduanya semakin kecil.
kesimpulan <- data.frame(
Faktor = c(
"Ukuran Sampel (n)",
"Standar Deviasi (SD)",
"Distribusi Z vs t"
),
Hasil = c(
"Semakin besar n, interval kepercayaan semakin sempit.",
"Semakin besar SD, interval kepercayaan semakin lebar.",
"Distribusi t menghasilkan interval sedikit lebih lebar dibanding distribusi Z, terutama pada sampel kecil."
)
)
knitr::kable(
kesimpulan,
caption = "Ringkasan Hasil Simulasi"
)
| Faktor | Hasil |
|---|---|
| Ukuran Sampel (n) | Semakin besar n, interval kepercayaan semakin sempit. |
| Standar Deviasi (SD) | Semakin besar SD, interval kepercayaan semakin lebar. |
| Distribusi Z vs t | Distribusi t menghasilkan interval sedikit lebih lebar dibanding distribusi Z, terutama pada sampel kecil. |
Berdasarkan hasil simulasi yang telah dilakukan, dapat disimpulkan bahwa ukuran sampel memiliki hubungan berbanding terbalik dengan lebar interval kepercayaan. Semakin besar jumlah sampel yang digunakan, maka interval kepercayaan menjadi semakin sempit sehingga estimasi parameter populasi menjadi lebih akurat.
Sebaliknya, peningkatan standar deviasi menyebabkan interval kepercayaan menjadi lebih lebar karena variasi data yang semakin besar. Perbandingan antara distribusi Z dan distribusi t juga menunjukkan bahwa distribusi t memberikan interval yang sedikit lebih konservatif, terutama pada ukuran sampel kecil. Namun, ketika ukuran sampel bertambah besar, hasil distribusi t semakin mendekati distribusi Z.
Dengan demikian, simulasi ini berhasil menunjukkan bagaimana ukuran sampel, variabilitas data, serta pengetahuan terhadap standar deviasi populasi memengaruhi pembentukan interval kepercayaan dalam proses inferensi statistik.