Menanyakan kepuasan seluruh pelanggan toko di Indonesia artinya menjangkau jutaan orang — mahal, lambat, dan sering mustahil. Sampling menyelesaikannya: ukur sebagian, lalu tarik kesimpulan tentang keseluruhan, lengkap dengan ukuran ketidakpastiannya. Dua pertanyaan mengendalikan seluruh chapter: bagaimana memilih anggota sampel agar tidak bias, dan bagaimana mengukur seberapa jauh statistik sampel bisa meleset dari populasi. Cakupan materinya:
- Populasi vs sampel, dan standard error
std/sqrt(n) - Simple random sampling dengan
randperm - Systematic dan stratified sampling
- Bootstrap: sebaran statistik dari data itu sendiri
Populasi, Sampel, dan Standard Error #
Statistik sampel — mean, median, proporsi — adalah estimasi, bukan kebenaran populasi; estimasi yang diambil ulang akan bergeser. Mekanismenya: besar pergeseran itu diatur standard error (se), yang untuk mean bernilai s/√n dengan s simpangan baku sampel. Semakin bervariasi populasi, semakin besar galat; semakin besar sampel, semakin kecil galatnya. Kita ukur pada durasi sepuluh kunjungan pelanggan:
durasi = [12 18 15 22 25 14 20 17 19 16]; % menit
n = numel(durasi);
fprintf('n = %d\n', n);
fprintf('mean = %.4f menit\n', mean(durasi));
fprintf('std = %.4f menit\n', std(durasi));
fprintf('se = %.4f menit\n', std(durasi)/sqrt(n));Output yang Dihasilkan:
n = 10
mean = 17.8000 menit
std = 3.8816 menit
se = 1.2275 menitMari kita bedah baris-baris kode di atas:
- Baris 1 (
durasi = ...): sampel 10 kunjungan;mean17.8 menit adalah estimasi mean populasi. - Baris 5 (
std(durasi)/sqrt(n)): se = 3.8816/√10 = 1.2275 — perkiraan seberapa jauh mean sampel lain akan berayun. - Implikasi praktisnya: mean populasi diperkirakan berada di sekitar 17.8 ± 2×1.23 — aturan dua-sigma yang menjadi dasar Chapter Confidence Interval.
Bagaimana ukuran sampel memengaruhi galat? Kurva se = s/√n menjawabnya:
s = std(durasi);
for nn = [10 40 160 640]
fprintf('n = %3d -> se = %.4f\n', nn, s/sqrt(nn));
endOutput yang Dihasilkan:
n = 10 -> se = 1.2275
n = 40 -> se = 0.6137
n = 160 -> se = 0.3069
n = 640 -> se = 0.1534Empat kali lipat data hanya memangkas separuh galat — itulah harga √n. Survei nasional dengan “margin of error” kecil memang membutuhkan ribuan responden.
Simple Random Sampling #
Cara paling jujur mengambil sampel: setiap anggota populasi berpeluang sama terpilih. Mekanismenya di MATLAB: randperm(N, n) menghasilkan n indeks unik dari 1..N — sampling tanpa penggantian — lalu indeks itu memilih anggota populasi.
populasi = [55 58 60 62 64 65 67 68 70 71 73 74 ...
75 77 79 80 82 84 86 90]; % skor kepuasan 20 toko
idx = randperm(numel(populasi), 6);
sampel = populasi(idx);
fprintf('terpilih %d dari %d toko\n', numel(sampel), numel(populasi));
fprintf('mean sampel : %.4f\n', mean(sampel));
fprintf('mean populasi : %.4f\n', mean(populasi));Indeks idx dan mean sampel berganti nilai pada setiap eksekusi — itulah hakikat pengambilan acak — sehingga blok output hanya menampilkan baris yang stabil:
Output yang Dihasilkan:
terpilih 6 dari 20 toko
mean populasi : 72.0000Mari kita bedah baris-baris kode di atas:
- Baris 1-2 (
populasi = ...): 20 skor kepuasan sebagai populasi mini — mean populasi 72.0000 adalah angka acuan yang ingin diperkirakan. - Baris 3 (
randperm(20, 6)): 6 indeks berbeda; setiap himpunan 6-toko berpeluang sama, definisi simple random sampling. - Baris 5 (
mean(sampel)): bergantung pada indeks terundi — bandingkan nilainya dengan 72 tiap kali dijalankan; kadang lebih tinggi, kadang lebih rendah.
Systematic Sampling #
Cara lain yang lebih murah: pilih setiap anggota ke-k setelah titik awal. Mekanismenya: interval k = N/n dihitung dari target ukuran sampel, lalu indeks berjalan 1, 1+k, 1+2k, … — penuh determinisme tanpa angka acak.
k = 4; % interval: setiap toko ke-4
idx = 1:k:numel(populasi); % mulai dari toko pertama
sys = populasi(idx);
for t = 1:numel(idx)
fprintf('tarikan %d: toko indeks %d, skor %g\n', t, idx(t), sys(t));
end
fprintf('mean sampel sistematik : %.4f\n', mean(sys));
fprintf('mean populasi : %.4f\n', mean(populasi));Output yang Dihasilkan:
tarikan 1: toko indeks 1, skor 55
tarikan 2: toko indeks 5, skor 64
tarikan 3: toko indeks 9, skor 70
tarikan 4: toko indeks 13, skor 75
tarikan 5: toko indeks 17, skor 82
mean sampel sistematik : 69.2000
mean populasi : 72.0000Mari kita bedah baris-baris kode di atas:
- Baris 1 (
k = 4): populasi 20 dibagi target 5 sampel menghasilkan interval 4. - Baris 2 (
1:k:20): operator rentang menghasilkan indeks [1 5 9 13 17] — terdeterminasi penuh, hasil identik tiap eksekusi. - Baris 8: mean sistematik 69.2 meleset 2.8 poin dari populasi — tanpa unsur acak, satu-satunya “keberuntungan” adalah titik awal 1.
Stratified Sampling #
Populasi sering terdiri dari kelompok yang berbeda karakter — dan SRS bisa saja tidak mengambil satu pun anggota kelompok minoritas. Solusinya: belah populasi menjadi stratum, lalu ambil sampel dari masing-masing kelompok secara proporsional. Mekanismenya: alokasi n×(ukuran stratum/N) anggota per stratum, masing-masing dipilih dengan randperm.
reguler = [55 60 62 65 68 70 72 75 78 80 82 85]; % 12 toko reguler
premium = [78 82 85 88 90 92 95 98]; % 8 toko premium
nSampel = 10;
nReg = round(nSampel * numel(reguler) / 20); % alokasi proporsional
nPre = nSampel - nReg;
fprintf('alokasi: %d reguler + %d premium = %d toko\n', nReg, nPre, nSampel);
idxR = randperm(numel(reguler), nReg);
idxP = randperm(numel(premium), nPre);
fprintf('mean populasi reguler : %.4f\n', mean(reguler));
fprintf('mean populasi premium : %.4f\n', mean(premium));Output yang Dihasilkan:
alokasi: 6 reguler + 4 premium = 10 toko
mean populasi reguler : 71.0000
mean populasi premium : 88.5000Mari kita bedah baris-baris kode di atas:
- Baris 3-4 (
nReg,nPre): 10 × 12/20 = 6 kursi untuk toko reguler dan 4 untuk premium — komposisi sampel meniru komposisi populasi. - Baris 6-7 (
randpermper stratum): pengacakan berjalan terpisah per kelompok;idxRdanidxPberganti tiap eksekusi. - Baris 8-9: kedua stratum terpisah 17.5 poin — informasi yang akan terhapus jika kedua kelompok dilebur jadi satu angka rata-rata.
Bootstrap: Ketidakpastian Tanpa Rumus #
Kita sudah memakai rumus se = s/√n untuk mean. Tetapi bagaimana mengukur ketidakpastian median, atau rasio, atau statistik apa pun yang rumus galatnya tidak tersedia? Bootstrap menjawab: perlakukan sampel sebagai populasi mini, lalu resample dengan penggantian berkali-kali dan amati sebaran statistiknya.
sampel12 = [52 55 58 60 63 65 67 70 72 75 78 82]; % skor kepuasan 12 toko
B = 2000;
nB = numel(sampel12);
bootMean = zeros(B, 1);
for b = 1:B
idxB = randi(nB, nB, 1); % indeks boleh berulang
bootMean(b) = mean(sampel12(idxB));
end
ci = quantile(bootMean, [0.025 0.975]);
fprintf('mean sampel : %.4f\n', mean(sampel12));
fprintf('se teori (s/sqrt n) : %.4f\n', std(sampel12)/sqrt(nB));
fprintf('se bootstrap : %.4f\n', std(bootMean));
fprintf('CI 95 persen : [%.4f, %.4f]\n', ci(1), ci(2));Output yang Dihasilkan:
mean sampel : 66.4167
se teori (s/sqrt n) : 2.6953
se bootstrap : 2.6021
CI 95 persen : [61.5000, 71.5000]Angka se bootstrap dan CI pada blok di atas bergeser sedikit pada tiap eksekusi karena resampling memakai randi; berkas contoh.m menyetel rng(42) di baris pertama sehingga nilainya dapat direproduksi di engine yang sama (di MATLAB angkanya sedikit berbeda). Mari kita bedah baris-baris kode di atas:
- Baris 4 (
zeros(B,1)): 2000 hasil disiapkan — bootstrap adalah eksperimen berulang, bukan satu hitungan. - Baris 6 (
randi(nB, nB, 1)): 12 indeks dari 1..12 dengan penggantian — resample berukuran sama dengan sampel asli; beberapa toko muncul dua kali, yang lain absen. - Baris 10 (
quantile(bootMean, [.025 .975])): memotong 2.5% ekor kiri dan kanan sebaran bootstrap — interval 95% untuk mean populasi. - Hasilnya: se bootstrap 2.60 dekat dengan rumus teori 2.70 — bootstrap menemukan kembali rumus yang sudah kita kenal, dan itulah alasan memercayainya untuk statistik yang rumusnya tidak ada.
Alur Pemilihan Metode #
Diagram ini membaca dari atas ke bawah: populasi masuk, metode pemilihan ditentukan struktur datanya (acak murni, pola interval, atau kelompok heterogen), statistik dihitung, lalu ketidakpastian dilengkapi lewat rumus atau bootstrap sebelum dilaporkan.
Tabel Perbandingan Metode #
| Metode | Mekanisme | Kekuatan | Kelemahan |
|---|---|---|---|
| SRS | randperm(N,n) | tanpa bias by design | butuh daftar seluruh populasi |
| Systematic | interval k | sederhana, merata | rentan pola berkala |
| Stratified | alokasi per stratum | presisi tinggi, kelompok terwakili | butuh info kelompok tiap anggota |
| Bootstrap | resample dengan penggantian | bekerja untuk statistik apa pun | bergantung kualitas sampel |
Berkas contoh.m menjalankan keempat metode berurutan: standard error, SRS, systematic, stratified, lalu bootstrap 2000 resample.
Ringkasan #
Sampling menjembatani sampel dan populasi: SRS memberi peluang sama lewat randperm, systematic memangkas biaya dengan interval tetap, dan stratified menjaga kelompok minoritas tetap terwakili. Ketidakpastian estimasi diukur standard error s/√n — yang hanya membaik sebanding akar ukuran sampel — atau oleh bootstrap ketika rumus tidak tersedia. Setelah estimasi dan galatnya lengkap, pertanyaan berikutnya adalah apakah pola antar variabel nyata: itu materi Chapter Korelasi.