Simple Random Sampling dan Stratified Random Sampling — dalam menduga rata-rata populasi (mean). Perbandingan dilakukan pada dua kondisi populasi yang berbeda: populasi homogen (tidak ada perbedaan struktural antar kelompok) dan populasi terstratifikasi (terdapat perbedaan nyata antar strata). Efisiensi diukur melalui ragam penduga mean yang dihasilkan dari 1.000 replikasi simulasi (B = 1.000), dengan ukuran populasi N = 900 dan ukuran sampel n = 90.
Populasi homogen dibangkitkan dari satu distribusi normal yang sama
(rnorm(N, mean = 50, sd = 5)), kemudian dibagi secara
mekanis menjadi 3 strata masing-masing berisi 300 unit.
set.seed(1076)
# Bangkitkan populasi homogen (tidak ada perbedaan antar kelompok)
# Semua unit berasal dari distribusi yang sama
N <- 900 # total populasi
populasi_homogen <- rnorm(N, mean = 50, sd = 5)
# Bagi jadi 3 strata (meski homogen, tetap dibagi untuk perbandingan)
strata1_h <- populasi_homogen[1:300]
strata2_h <- populasi_homogen[301:600]
strata3_h <- populasi_homogen[601:900]
# Cek bahwa memang homogen (mean & sd antar strata mirip)
cat("=== CEK HOMOGENITAS ===\n")
## === CEK HOMOGENITAS ===
cat("Mean strata 1:", mean(strata1_h), "\n")
## Mean strata 1: 49.91667
cat("Mean strata 2:", mean(strata2_h), "\n")
## Mean strata 2: 49.97306
cat("Mean strata 3:", mean(strata3_h), "\n")
## Mean strata 3: 49.55191
cat("SD strata 1:", sd(strata1_h), "\n")
## SD strata 1: 5.08008
cat("SD strata 2:", sd(strata2_h), "\n")
## SD strata 2: 4.809039
cat("SD strata 3:", sd(strata3_h), "\n")
## SD strata 3: 5.071194
# Parameter populasi sebenarnya (true parameter)
mu_true <- mean(populasi_homogen)
cat("Mean populasi sebenarnya:", mu_true, "\n")
## Mean populasi sebenarnya: 49.81388
Hasil cek homogenitas menunjukkan mean ketiga strata sangat mirip (~49.5–50.0) dengan SD yang seragam (~5), mengonfirmasi bahwa tidak ada perbedaan struktural antar kelompok. Mean populasi sebenarnya (true parameter μ) adalah 49.814, yang menjadi acuan kebenaran dalam evaluasi penduga.
#--------------------------------------------------
# SIMPLE RANDOM SAMPLING (SRS)
#--------------------------------------------------
n <- 90 # ukuran sampel total
B <- 1000 # jumlah replikasi simulasi
mean_srs_h <- numeric(B)
for (i in 1:B) {
sampel_srs <- sample(populasi_homogen, n)
mean_srs_h[i] <- mean(sampel_srs)
}
ragam_srs_h <- var(mean_srs_h)
cat("Ragam penduga SRS (homogen):", ragam_srs_h, "\n")
## Ragam penduga SRS (homogen): 0.2642141
Dari 1.000 replikasi pengambilan sampel SRS, diperoleh ragam penduga mean sebesar 0.2642. Nilai ini mencerminkan seberapa besar variabilitas dugaan mean yang dihasilkan SRS jika sampling diulang berkali-kali.
#--------------------------------------------------
# STRATIFIED RANDOM SAMPLING — Alokasi Proporsional
#--------------------------------------------------
# Masing-masing strata diambil n/3 = 30 sampel
mean_strat_h <- numeric(B)
for (i in 1:B) {
s1 <- sample(strata1_h, 30)
s2 <- sample(strata2_h, 30)
s3 <- sample(strata3_h, 30)
# Penduga mean stratified (rata-rata tertimbang)
mean_strat_h[i] <- (300*mean(s1) + 300*mean(s2) + 300*mean(s3)) / N
}
ragam_strat_h <- var(mean_strat_h)
cat("Ragam penduga Stratified (homogen):", ragam_strat_h, "\n")
## Ragam penduga Stratified (homogen): 0.2832722
Dengan metode Stratified (alokasi proporsional, 30 sampel per strata), diperoleh ragam penduga mean sebesar 0.2833 — sedikit lebih besar dari SRS.
# Efisiensi relatif: seberapa besar SRS lebih boros dibanding Stratified
efisiensi_h <- ragam_srs_h / ragam_strat_h
cat("Efisiensi Relatif (homogen):", efisiensi_h, "\n")
## Efisiensi Relatif (homogen): 0.9327213
Efisiensi relatif sebesar 0.933 (< 1) menunjukkan bahwa pada populasi homogen, Stratified Random Sampling justru sedikit kurang efisien dibanding SRS. Hal ini sesuai ekspektasi teoritis: ketika tidak ada perbedaan struktural antar strata, pemaksaan pengelompokan tidak memberikan manfaat dalam mereduksi ragam — strata yang dibentuk bersifat “semu” karena tidak mencerminkan heterogenitas yang nyata.
Populasi terstratifikasi dibangkitkan dari tiga distribusi normal
yang berbeda secara signifikan: strata rendah (mean = 30),
strata sedang (mean = 50), dan strata tinggi
(mean = 70), masing-masing dengan sd = 5.
# Bangkitkan populasi dengan perbedaan nyata antar strata
strata1_s <- rnorm(300, mean = 30, sd = 5) # strata rendah
strata2_s <- rnorm(300, mean = 50, sd = 5) # strata sedang
strata3_s <- rnorm(300, mean = 70, sd = 5) # strata tinggi
populasi_strat <- c(strata1_s, strata2_s, strata3_s)
# Cek bahwa memang heterogen antar strata
cat("=== CEK HETEROGENITAS ===\n")
## === CEK HETEROGENITAS ===
cat("Mean strata 1:", mean(strata1_s), "\n")
## Mean strata 1: 30.43667
cat("Mean strata 2:", mean(strata2_s), "\n")
## Mean strata 2: 50.34494
cat("Mean strata 3:", mean(strata3_s), "\n")
## Mean strata 3: 69.8479
mu_true_s <- mean(populasi_strat)
cat("Mean populasi sebenarnya:", mu_true_s, "\n")
## Mean populasi sebenarnya: 50.20984
Cek heterogenitas mengonfirmasi perbedaan mean antar strata yang sangat jelas (~30.4, ~50.3, ~69.8), sementara mean populasi keseluruhan tetap ~50 karena ketiga strata berukuran sama sehingga saling menyeimbangkan.
#--------------------------------------------------
# SIMPLE RANDOM SAMPLING (SRS)
#--------------------------------------------------
mean_srs_s <- numeric(B)
for (i in 1:B) {
sampel_srs <- sample(populasi_strat, n)
mean_srs_s[i] <- mean(sampel_srs)
}
ragam_srs_s <- var(mean_srs_s)
cat("Ragam penduga SRS (terstratifikasi):", ragam_srs_s, "\n")
## Ragam penduga SRS (terstratifikasi): 3.047988
Ragam penduga SRS melonjak drastis ke 3.048 — sekitar 11.5× lebih besar dibanding skenario homogen (0.264). Lonjakan ini terjadi karena SRS mengambil sampel secara acak tanpa memperhatikan struktur strata, sehingga komposisi sampel bisa sangat bervariasi antar replikasi dan menghasilkan dugaan mean yang tidak stabil.
#--------------------------------------------------
# STRATIFIED RANDOM SAMPLING — Alokasi Proporsional
#--------------------------------------------------
mean_strat_s <- numeric(B)
for (i in 1:B) {
s1 <- sample(strata1_s, 30)
s2 <- sample(strata2_s, 30)
s3 <- sample(strata3_s, 30)
mean_strat_s[i] <- (300*mean(s1) + 300*mean(s2) + 300*mean(s3)) / N
}
ragam_strat_s <- var(mean_strat_s)
cat("Ragam penduga Stratified (terstratifikasi):", ragam_strat_s, "\n")
## Ragam penduga Stratified (terstratifikasi): 0.2486905
Sebaliknya, ragam penduga Stratified justru sedikit mengecil menjadi 0.249 (dari 0.283 di skenario homogen). Ini menunjukkan bahwa ketika struktur strata memang nyata, Stratified berhasil mengeliminasi komponen ragam antar strata (between-strata variance) dari pendugaannya, sehingga hanya tersisa ragam dalam strata (within-strata variance) yang jauh lebih kecil.
efisiensi_s <- ragam_srs_s / ragam_strat_s
cat("Efisiensi Relatif (terstratifikasi):", efisiensi_s, "\n")
## Efisiensi Relatif (terstratifikasi): 12.25615
Efisiensi relatif sebesar 12.256 (>> 1) berarti Stratified ~12× lebih efisien dari SRS pada populasi terstratifikasi. Untuk mencapai tingkat presisi yang sama dengan Stratified, SRS harus mengambil sampel sekitar 12× lebih banyak — sangat tidak efisien dari sisi sumber daya.
#--------------------------------------------------
# TABEL RINGKASAN
#--------------------------------------------------
hasil <- data.frame(
Skenario = c("Homogen", "Terstratifikasi"),
Ragam_SRS = c(ragam_srs_h, ragam_srs_s),
Ragam_Stratified = c(ragam_strat_h, ragam_strat_s),
Efisiensi_Relatif = c(efisiensi_h, efisiensi_s)
)
print(hasil)
## Skenario Ragam_SRS Ragam_Stratified Efisiensi_Relatif
## 1 Homogen 0.2642141 0.2832722 0.9327213
## 2 Terstratifikasi 3.0479884 0.2486905 12.2561535
#--------------------------------------------------
# VISUALISASI — Distribusi Penduga Mean
#--------------------------------------------------
par(mfrow = c(2, 2))
hist(mean_srs_h, main = "SRS — Populasi Homogen",
xlab = "Dugaan Mean", col = "steelblue", border = "white")
abline(v = mu_true, col = "red", lwd = 2)
hist(mean_strat_h, main = "Stratified — Populasi Homogen",
xlab = "Dugaan Mean", col = "steelblue", border = "white")
abline(v = mu_true, col = "red", lwd = 2)
hist(mean_srs_s, main = "SRS — Populasi Terstratifikasi",
xlab = "Dugaan Mean", col = "darkorange", border = "white")
abline(v = mu_true_s, col = "red", lwd = 2)
hist(mean_strat_s, main = "Stratified — Populasi Terstratifikasi",
xlab = "Dugaan Mean", col = "darkorange", border = "white")
abline(v = mu_true_s, col = "red", lwd = 2)
| Skenario | Ragam SRS | Ragam Stratified | Efisiensi Relatif |
|---|---|---|---|
| Homogen | 0.2642 | 0.2833 | 0.933 |
| Terstratifikasi | 3.0480 | 0.2487 | 12.256 |
Dua temuan utama dari simulasi ini:
Ragam SRS sangat sensitif terhadap heterogenitas populasi — melonjak ~11.5× ketika populasi berubah dari homogen ke terstratifikasi, sementara ragam Stratified hampir tidak berubah (~0.25–0.28 di kedua skenario).
Stratified hanya unggul ketika struktur strata memang nyata — efisiensi relatif berbalik dari < 1 (homogen) menjadi >> 1 (terstratifikasi), membuktikan bahwa pemilihan metode sampling harus disesuaikan dengan karakteristik populasi.