## Penentuan ukuran sampel untuk mengestimasi rata-rata populasi.
#-------------------------------------------------------------
# 1. Infinite Population
#-------------------------------------------------------------
Z <- 1.96 #Z-Score untuk 95% confidence
s <- 2 #Standar deviasi (inch)
MOE <- 0.5 #Margin of Error (MOE) yang diinginkan (inch)
#Menghitung jumlah sampel minimal (Populasi tidak diketahui)
n <- (Z*s/MOE)^2
print(n)
## [1] 61.4656
#Pembulatan keatas (karena sampel harus bil.bulat)
n_samp <- ceiling(n)
cat("Jumlah sampel minimum yang diperlukan (Infinite Population)", n_samp, "\n")
## Jumlah sampel minimum yang diperlukan (Infinite Population) 62
#------------------------------------------------------------------
# 2. Finite Population
#------------------------------------------------------------------
N <- 500 #Jumlah Populasi
Z <- 1.96 #Z-score 95%
s <- 300000 #Standar deviasi
MOE <- 100000 #Margin of error
#Menghitung n0 terlebih dahulu
n0 <- (Z^2 * s^2) / (MOE^2)
#Koreksi finite population
n_finite <- n0 / (1 + (n0/N))
#Menghitung jumlah sample minimal
n_final <- ceiling(n_finite)
cat("Jumlah sampel minimum yang diperlukan (Finite Population)", n_final, "\n")
## Jumlah sampel minimum yang diperlukan (Finite Population) 33
#Lakukan simple random sampling dari populasi 500
set.seed(2025)
sample_terpilih <- sample(1:500, n_final)
cat("Sample Mahasiswa yang terpilih", sample_terpilih, "\n")
## Sample Mahasiswa yang terpilih 397 460 420 410 449 279 187 266 461 369 499 388 27 471 379 373 407 59 395 159 142 37 288 63 285 289 252 345 118 88 195 174 428
Berdasarkan hasil perhitungan pada studi kasus infinite population, diperoleh bahwa jumlah sampel minimal yang diperlukan adalah sebanyak 62 responden.Sedangkan untuk hasil studi kasus finite population bahwa, untuk mengestimasi rata-rata pengukuran bulanan mahasiswa dengan tingkat kepercayaan 95% dan margin of error sebesar Rp 100,000. Maka peneliti perlu mengambil minimal 33 sampel dari total 500 mahasiswa.
## Penentuan ukuran sampel untuk mengestimasi rata-rata populasi
Ni <- c(100, 200) #Jumlah populasi tiap srata
sigma2_i <- c(4, 9) #Ragam (varians) tiap strata
N <- sum(Ni) #Total Populasi
wi <- Ni/N #Proporsi tiap strata
B <- 0.1 # Batas kesalahan yang ditoleransi
#---------------------------------------------------------------
# 1. Menentukan Ukuran Sampel
#---------------------------------------------------------------
#Menentukan tingkat ketelitian (D)
D <- B^2 /4
#Hitung Pembilang
numerator <- sum(Ni * sigma2_i/wi)
print(numerator)
## [1] 3900
#Hitung Penyebut
denominator <- (N^2 * D) + sum(Ni * sigma2_i)
print(denominator)
## [1] 2425
#Hitung jumlah sampel minimal
n <- numerator / denominator
#Cetak hasil (dibulatkan ke atas karena jumlah sampel harus bilangan bulat)
cat("Jumlah sampel minimal yang diperlukan adalah:", ceiling(n), "\n")
## Jumlah sampel minimal yang diperlukan adalah: 2
#--------------------------------------------------------------------------
# 2. Lakukan Stratified Sampling
#--------------------------------------------------------------------------
#Alokasi Sampel Tiap Strata
n_total <- ceiling(n) # jumlah sampel total
#Alokasi proporsional
ni <- round(wi * n_total)
ni
## [1] 1 1
#Simulasi Data Populasi : Misal ID populasi tiap strata
set.seed(123)
pop_strata1 <- data.frame(
id = 1:Ni[1], #Membuat ID 1-100
strata = "Strata 1"
)
pop_strata2 <- data.frame(
id = 1:Ni[2], #Membuat ID 1 - 200
strata = "Strata 2"
)
#Gabungkan populasi
population <- rbind(pop_strata1, pop_strata2)
print(population)
## id strata
## 1 1 Strata 1
## 2 2 Strata 1
## 3 3 Strata 1
## 4 4 Strata 1
## 5 5 Strata 1
## 6 6 Strata 1
## 7 7 Strata 1
## 8 8 Strata 1
## 9 9 Strata 1
## 10 10 Strata 1
## 11 11 Strata 1
## 12 12 Strata 1
## 13 13 Strata 1
## 14 14 Strata 1
## 15 15 Strata 1
## 16 16 Strata 1
## 17 17 Strata 1
## 18 18 Strata 1
## 19 19 Strata 1
## 20 20 Strata 1
## 21 21 Strata 1
## 22 22 Strata 1
## 23 23 Strata 1
## 24 24 Strata 1
## 25 25 Strata 1
## 26 26 Strata 1
## 27 27 Strata 1
## 28 28 Strata 1
## 29 29 Strata 1
## 30 30 Strata 1
## 31 31 Strata 1
## 32 32 Strata 1
## 33 33 Strata 1
## 34 34 Strata 1
## 35 35 Strata 1
## 36 36 Strata 1
## 37 37 Strata 1
## 38 38 Strata 1
## 39 39 Strata 1
## 40 40 Strata 1
## 41 41 Strata 1
## 42 42 Strata 1
## 43 43 Strata 1
## 44 44 Strata 1
## 45 45 Strata 1
## 46 46 Strata 1
## 47 47 Strata 1
## 48 48 Strata 1
## 49 49 Strata 1
## 50 50 Strata 1
## 51 51 Strata 1
## 52 52 Strata 1
## 53 53 Strata 1
## 54 54 Strata 1
## 55 55 Strata 1
## 56 56 Strata 1
## 57 57 Strata 1
## 58 58 Strata 1
## 59 59 Strata 1
## 60 60 Strata 1
## 61 61 Strata 1
## 62 62 Strata 1
## 63 63 Strata 1
## 64 64 Strata 1
## 65 65 Strata 1
## 66 66 Strata 1
## 67 67 Strata 1
## 68 68 Strata 1
## 69 69 Strata 1
## 70 70 Strata 1
## 71 71 Strata 1
## 72 72 Strata 1
## 73 73 Strata 1
## 74 74 Strata 1
## 75 75 Strata 1
## 76 76 Strata 1
## 77 77 Strata 1
## 78 78 Strata 1
## 79 79 Strata 1
## 80 80 Strata 1
## 81 81 Strata 1
## 82 82 Strata 1
## 83 83 Strata 1
## 84 84 Strata 1
## 85 85 Strata 1
## 86 86 Strata 1
## 87 87 Strata 1
## 88 88 Strata 1
## 89 89 Strata 1
## 90 90 Strata 1
## 91 91 Strata 1
## 92 92 Strata 1
## 93 93 Strata 1
## 94 94 Strata 1
## 95 95 Strata 1
## 96 96 Strata 1
## 97 97 Strata 1
## 98 98 Strata 1
## 99 99 Strata 1
## 100 100 Strata 1
## 101 1 Strata 2
## 102 2 Strata 2
## 103 3 Strata 2
## 104 4 Strata 2
## 105 5 Strata 2
## 106 6 Strata 2
## 107 7 Strata 2
## 108 8 Strata 2
## 109 9 Strata 2
## 110 10 Strata 2
## 111 11 Strata 2
## 112 12 Strata 2
## 113 13 Strata 2
## 114 14 Strata 2
## 115 15 Strata 2
## 116 16 Strata 2
## 117 17 Strata 2
## 118 18 Strata 2
## 119 19 Strata 2
## 120 20 Strata 2
## 121 21 Strata 2
## 122 22 Strata 2
## 123 23 Strata 2
## 124 24 Strata 2
## 125 25 Strata 2
## 126 26 Strata 2
## 127 27 Strata 2
## 128 28 Strata 2
## 129 29 Strata 2
## 130 30 Strata 2
## 131 31 Strata 2
## 132 32 Strata 2
## 133 33 Strata 2
## 134 34 Strata 2
## 135 35 Strata 2
## 136 36 Strata 2
## 137 37 Strata 2
## 138 38 Strata 2
## 139 39 Strata 2
## 140 40 Strata 2
## 141 41 Strata 2
## 142 42 Strata 2
## 143 43 Strata 2
## 144 44 Strata 2
## 145 45 Strata 2
## 146 46 Strata 2
## 147 47 Strata 2
## 148 48 Strata 2
## 149 49 Strata 2
## 150 50 Strata 2
## 151 51 Strata 2
## 152 52 Strata 2
## 153 53 Strata 2
## 154 54 Strata 2
## 155 55 Strata 2
## 156 56 Strata 2
## 157 57 Strata 2
## 158 58 Strata 2
## 159 59 Strata 2
## 160 60 Strata 2
## 161 61 Strata 2
## 162 62 Strata 2
## 163 63 Strata 2
## 164 64 Strata 2
## 165 65 Strata 2
## 166 66 Strata 2
## 167 67 Strata 2
## 168 68 Strata 2
## 169 69 Strata 2
## 170 70 Strata 2
## 171 71 Strata 2
## 172 72 Strata 2
## 173 73 Strata 2
## 174 74 Strata 2
## 175 75 Strata 2
## 176 76 Strata 2
## 177 77 Strata 2
## 178 78 Strata 2
## 179 79 Strata 2
## 180 80 Strata 2
## 181 81 Strata 2
## 182 82 Strata 2
## 183 83 Strata 2
## 184 84 Strata 2
## 185 85 Strata 2
## 186 86 Strata 2
## 187 87 Strata 2
## 188 88 Strata 2
## 189 89 Strata 2
## 190 90 Strata 2
## 191 91 Strata 2
## 192 92 Strata 2
## 193 93 Strata 2
## 194 94 Strata 2
## 195 95 Strata 2
## 196 96 Strata 2
## 197 97 Strata 2
## 198 98 Strata 2
## 199 99 Strata 2
## 200 100 Strata 2
## 201 101 Strata 2
## 202 102 Strata 2
## 203 103 Strata 2
## 204 104 Strata 2
## 205 105 Strata 2
## 206 106 Strata 2
## 207 107 Strata 2
## 208 108 Strata 2
## 209 109 Strata 2
## 210 110 Strata 2
## 211 111 Strata 2
## 212 112 Strata 2
## 213 113 Strata 2
## 214 114 Strata 2
## 215 115 Strata 2
## 216 116 Strata 2
## 217 117 Strata 2
## 218 118 Strata 2
## 219 119 Strata 2
## 220 120 Strata 2
## 221 121 Strata 2
## 222 122 Strata 2
## 223 123 Strata 2
## 224 124 Strata 2
## 225 125 Strata 2
## 226 126 Strata 2
## 227 127 Strata 2
## 228 128 Strata 2
## 229 129 Strata 2
## 230 130 Strata 2
## 231 131 Strata 2
## 232 132 Strata 2
## 233 133 Strata 2
## 234 134 Strata 2
## 235 135 Strata 2
## 236 136 Strata 2
## 237 137 Strata 2
## 238 138 Strata 2
## 239 139 Strata 2
## 240 140 Strata 2
## 241 141 Strata 2
## 242 142 Strata 2
## 243 143 Strata 2
## 244 144 Strata 2
## 245 145 Strata 2
## 246 146 Strata 2
## 247 147 Strata 2
## 248 148 Strata 2
## 249 149 Strata 2
## 250 150 Strata 2
## 251 151 Strata 2
## 252 152 Strata 2
## 253 153 Strata 2
## 254 154 Strata 2
## 255 155 Strata 2
## 256 156 Strata 2
## 257 157 Strata 2
## 258 158 Strata 2
## 259 159 Strata 2
## 260 160 Strata 2
## 261 161 Strata 2
## 262 162 Strata 2
## 263 163 Strata 2
## 264 164 Strata 2
## 265 165 Strata 2
## 266 166 Strata 2
## 267 167 Strata 2
## 268 168 Strata 2
## 269 169 Strata 2
## 270 170 Strata 2
## 271 171 Strata 2
## 272 172 Strata 2
## 273 173 Strata 2
## 274 174 Strata 2
## 275 175 Strata 2
## 276 176 Strata 2
## 277 177 Strata 2
## 278 178 Strata 2
## 279 179 Strata 2
## 280 180 Strata 2
## 281 181 Strata 2
## 282 182 Strata 2
## 283 183 Strata 2
## 284 184 Strata 2
## 285 185 Strata 2
## 286 186 Strata 2
## 287 187 Strata 2
## 288 188 Strata 2
## 289 189 Strata 2
## 290 190 Strata 2
## 291 191 Strata 2
## 292 192 Strata 2
## 293 193 Strata 2
## 294 194 Strata 2
## 295 195 Strata 2
## 296 196 Strata 2
## 297 197 Strata 2
## 298 198 Strata 2
## 299 199 Strata 2
## 300 200 Strata 2
# Ambil sampel dari tiap strata
sample_strata1 <- pop_strata1[sample(1:Ni[1], ni[1]), ]
sample_strata2 <- pop_strata2[sample(1:Ni[2], ni[2]), ]
#Gabungkan hasil sampel
sample_data <- rbind(sample_strata1, sample_strata2)
print(sample_data)
## id strata
## 31 31 Strata 1
## 179 179 Strata 2
cat("Sampel Strata 1:", nrow(sample_strata1), "\n")
## Sampel Strata 1: 1
cat("Sampel Strata 2:", nrow(sample_strata2), "\n")
## Sampel Strata 2: 1
head(sample_data)
## id strata
## 31 31 Strata 1
## 179 179 Strata 2
Berdasarkan hasil perhitungan, diperoleh bahwa jumlah sampel total yang diambil adalah sebanyak 2 sampel. Selanjutnya, sampel tersebut dialokasikan ke dalam masing-masing strata secara proporsional, sehingga diperoleh 1 sampel dari Strata 1 dan 1 sampel dari Strata 2. Hasil pengambilan sampel secara acak menunjukkan bahwa individu yang terpilih berasal dari ID ke-31 untuk Strata 1 dan ID ke-179 untuk Strata 2.
Namun demikian, jumlah sampel yang sangat kecil ini mengindikasikan bahwa tingkat ketelitian yang digunakan dalam perhitungan masih relatif rendah. Akibatnya, sampel yang diperoleh belum cukup representatif untuk menggambarkan kondisi populasi secara keseluruhan. Hal ini terjadi kemungkinan karena MOE yang terlalu besar atau varians nya yang terlalu sempit.
## Penentuan ukuran sampel untuk mengestimasi rata-rata populasi.
#--------------------------------------------------------------
# 1. Menentukan Ukuran Sampel Minimum
#--------------------------------------------------------------
N <- 10 #Jumlah total cluster 10 desa
yi <- c(200, 180, 220) #Total pendapatan tiap cluster
mi <- c(10, 10, 10) #Jumlah orang tiap clsuter
B <- 0.1 #Batas kesalahan estimasi (juta)
#Hitung rata-rata pendapatan
y_bar <- sum(yi) / sum(mi)
print(y_bar)
## [1] 20
#Hitung ragam antar cluster (SR^2)
sr2 <- sum ((yi - y_bar * mi)^2) / (length(yi)-1)
print(sr2)
## [1] 400
#Hitung rata-rata jumlah orang percluster
m_bar <- mean(mi)
print(m_bar)
## [1] 10
#Hitung D
D <- (B^2 * m_bar^2) / 4
print(D)
## [1] 0.25
#Hitung jumlah sampel minimal
n <- (N * sr2) / (N * D + sr2)
print(n)
## [1] 9.937888
#Cetak hasil(Dibulatkan ke atas karena jumlah sampel harus bilangan bulat)
cat("Jumlah cluster minimal yang diperlukan:", ceiling(n), "\n")
## Jumlah cluster minimal yang diperlukan: 10
#------------------------------------------------------------------------
# 2. Lakukan Cluster Sampling
#------------------------------------------------------------------------
#Simulasi Data Populasi Cluster: Misal kita punya 10 cluster (desa)
set.seed(123)
cluster_id <- 1:N
#Tiap cluster punya anggota (mi)
population <- data.frame(
cluster = rep(cluster_id[1:length(mi)], times = mi),
id = unlist(lapply(mi, function(x) 1:x))
)
print(population)
## cluster id
## 1 1 1
## 2 1 2
## 3 1 3
## 4 1 4
## 5 1 5
## 6 1 6
## 7 1 7
## 8 1 8
## 9 1 9
## 10 1 10
## 11 2 1
## 12 2 2
## 13 2 3
## 14 2 4
## 15 2 5
## 16 2 6
## 17 2 7
## 18 2 8
## 19 2 9
## 20 2 10
## 21 3 1
## 22 3 2
## 23 3 3
## 24 3 4
## 25 3 5
## 26 3 6
## 27 3 7
## 28 3 8
## 29 3 9
## 30 3 10
sample_data <- population
#Menampilkan Hasil
cat("Jumlah Total Sample data yang terpilih:", nrow(sample_data), "\n")
## Jumlah Total Sample data yang terpilih: 30
Berdasarkan hasil perhitungan, jumlah cluster yang harus diambil sama dengan jumlah cluster dalam populasi, yaitu sebanyak 10 cluster. Hal ini menunjukkan bahwa variasi antar cluster cukup besar, sehingga seluruh cluster perlu di ikutsertakan agar hasil estimasi dapat mewakili populasi secara akurat. Hal ini dinamakan complete enumeration pada cluster. Sesuai dengan konsep cluster sampling, seluruh anggota dalam cluster yang terpilih di ikutsertakan sebagai sampel. Karena setiap cluster terdiri dari 10 individu, maka total sampel yang diperoleh adalah sebanyak 30 data.
## Penentuan ukuran sampel untuk mengestimasi rata-rata populasi
N <- 500 #Total Populasi
Z <- 1.96 #Z-score
sigma_2 <- 25 #Varians/ Ragam
B <- 0.2 #Batas kesalahan
#------------------------------------------------
# 1. Menentukan ukuran sampel
#------------------------------------------------
# Menentukan tingkat ketelitian
D <- (B)^2 / 4
print(D)
## [1] 0.01
# Menentukan ukuran sampel minimal
n <- (N * sigma_2) / ((N -1) * D + sigma_2)
# Cetak hasil(Dibulatkan ke atas karena jumlah sampel harus bilangan bulat)
cat("Jumlah cluster minimal yang diperlukan:", ceiling(n), "\n")
## Jumlah cluster minimal yang diperlukan: 417
#------------------------------------------------
# 2. Systematic Sampling
#------------------------------------------------
k <- floor (N/n)
#Titik awal random
set.seed(123)
start <- sample(1:k, 1)
#Hasil data sample
sample_sys <- seq(from = start, by = k, length.out = ceiling(n))
print(sample_sys)
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
## [19] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
## [37] 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
## [55] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
## [73] 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
## [91] 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
## [109] 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
## [127] 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
## [145] 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
## [163] 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
## [181] 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198
## [199] 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
## [217] 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234
## [235] 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252
## [253] 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270
## [271] 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288
## [289] 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306
## [307] 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324
## [325] 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342
## [343] 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360
## [361] 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378
## [379] 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396
## [397] 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414
## [415] 415 416 417
Jumlah sampel yang diperlukan adalah sebanyak 417 dari total 500 populasi. Hal ini menunjukkan bahwa untuk mencapai tingkat ketelitian yang diinginkan dengan margin of error sebesar 0.2 , diperlukan jumlah sampel yang cukup besar.
Sebuah perusahaan ingin mengetahui rataan waktu keterlambatan pembayaran tagihan konsumen. Systematic sampling diterapkan untuk mengambil populasi konsumen sebanyak 2500. Survei yang dilakukan tahun sebelumnya menghasilkan ragam waktu keterlambatan s^2 = 100 hari. Tentukan jumlah sampel size untuk mengestimasi rataan populasi dengan bound of error B = 2 hari.
#Definisi Variabel
N <- 2500 #Jumlah Populasi konsumen
s2 <- 100 #Ragam waktu keterlambatan
B <- 2 #Bound of error (2 hari)
#Menghitung Nilai D
D <- (B^2)/4
#Menghitung jumlah sampel (n)
n_Size <- (N * s2) / ((N-1) * D + s2)
#Pembulatan keatas
n_final <- ceiling(n_Size)
#Menampilkan Hasil
cat("Jumlah sampel minimal:",n_final, "\n" )
## Jumlah sampel minimal: 97