Seorang peneliti di bidang psikologi pendidikan ingin meneliti hubungan antara kebiasaan sarapan dan konsentrasi belajar siswa. Ia mengumpulkan data dari beberapa kelompok siswa dengan ukuran sampel berbeda dan tingkat variabilitas konsentrasi belajar yang bervariasi. Namun, ada satu tantangan utama: Apakah ia mengetahui standar deviasi populasi atau tidak?
Untuk menjawab pertanyaan ini, peneliti melakukan simulasi interval kepercayaan 95% untuk rata-rata konsentrasi belajar berdasarkan:
Ukuran sampel \((n)\): \(n\) = 5 (Penelitian skala kecil, hanya beberapa siswa) \(n\) = 30 (Penelitian standar) \(n\) = 100 (Penelitian dengan sampel besar)
Variabilitas konsentrasi belajar (\(σ\) atau \(s\)): \(σ\) = 10 (Siswa memiliki konsentrasi cukup seragam) \(σ\) = 50 (Konsentrasi sangat bervariasi) \(σ\) = 90 (Perbedaan antar siswa sangat besar)
Pengetahuan tentang standar deviasi populasi: Diketahui \((σ)\): Peneliti sudah memiliki data standar deviasi dari penelitian sebelumnya. Tidak diketahui \((s)\): Peneliti tidak tahu standar deviasi populasi, sehingga harus mengandalkan sampelnya sendiri dan menggunakan distribusi t.
Membandingkan lebar interval kepercayaan berubah ketika ukuran sampel bertambah, dengan asumsi standar deviasi diketahui (\(σ\) = 50).
# Load library
library(ggplot2)
# Parameter
n_values <- c(5, 30, 100)
sigma <- 50 # Standar deviasi tetap
z_score <- qnorm(0.975) # Untuk 95% confidence level
# Hitung lebar interval kepercayaan untuk setiap n
ci_width_n <- sapply(n_values, function(n) {
2 * (z_score * (sigma / sqrt(n)))
})
# Buat dataframe
df_n <- data.frame(n = n_values, ci_width = ci_width_n)
# Plot
ggplot(df_n, aes(x = factor(n), y = ci_width)) +
geom_bar(stat = "identity", fill = "steelblue") +
labs(title = "Pengaruh Ukuran Sampel terhadap Lebar Interval Kepercayaan",
x = "Ukuran Sampel (n)",
y = "Lebar Interval Kepercayaan") +
theme_minimal()
Membandingkan lebar interval kepercayaan berubah ketika standar deviasi meningkat, dengan asumsi \(n\) tetap = 30.
# Parameter
sigma_values <- c(10, 50, 90)
n <- 30 # Ukuran sampel tetap
z_score <- qnorm(0.975)
# Hitung lebar interval kepercayaan untuk setiap σ
ci_width_sigma <- sapply(sigma_values, function(sigma) {
2 * (z_score * (sigma / sqrt(n)))
})
# Buat dataframe
df_sigma <- data.frame(sigma = sigma_values, ci_width = ci_width_sigma)
# Plot
ggplot(df_sigma, aes(x = factor(sigma), y = ci_width)) +
geom_bar(stat = "identity", fill = "coral") +
labs(title = "Pengaruh Variabilitas Data terhadap Lebar Interval Kepercayaan",
x = "Standar Deviasi (σ)",
y = "Lebar Interval Kepercayaan") +
theme_minimal()
Membandingkan lebar interval kepercayaan jika standar deviasi diketahui (Z) vs tidak diketahui (t), dengan asumsi \(n\) = 30, \(σ\) = 50
# Parameter
n <- 30
sigma <- 50
z_score <- qnorm(0.975) # Jika SD diketahui
t_score <- qt(0.975, df = n - 1) # Jika SD tidak diketahui
# Hitung lebar interval kepercayaan
ci_width_z <- 2 * (z_score * (sigma / sqrt(n))) # Menggunakan Z
ci_width_t <- 2 * (t_score * (sigma / sqrt(n))) # Menggunakan t
# Buat dataframe
df_sd <- data.frame(
Method = c("Z-Distribusi (SD Diketahui)", "t-Distribusi (SD Tidak Diketahui)"),
ci_width = c(ci_width_z, ci_width_t)
)
# Plot
ggplot(df_sd, aes(x = Method, y = ci_width, fill = Method)) +
geom_bar(stat = "identity") +
labs(title = "Pengaruh Pengetahuan SD Populasi terhadap Lebar Interval Kepercayaan",
x = "Metode",
y = "Lebar Interval Kepercayaan") +
theme_minimal()