Metode pensampelan menentukan mutu seluruh analisis, karena statistik hanya mewakili populasi apabila sampelnya dipilih dengan benar. Topik ini membahas pensampelan acak sederhana dengan dan tanpa pengembalian, pensampelan berstrata yang menjaga keterwakilan kelompok, serta sumber bias pemilihan yang membuat sampel menyesatkan. Setiap metode didemonstrasikan pada populasi siswa fiktif sehingga perbedaan perilakunya terukur langsung.
Pensampelan acak sederhana#
Pensampelan acak sederhana (simple random sampling) memilih anggota sampel sehingga setiap kombinasi anggota memiliki peluang sama untuk terpilih. Cara paling langsung adalah mengundi nomor anggota dengan pembangkit acak, dan di NumPy pekerjaan itu dilakukan rng.choice. Pemilihan tanpa pengembalian (without replacement) tidak mengizinkan satu anggota terpilih dua kali, sedangkan pemilihan dengan pengembalian (with replacement) mengizinkannya agar setiap tarikan saling bebas. Perbedaan keduanya terlihat pada jumlah nilai unik di dalam sampel.
Skrip berikut mengundi 20 dari 60 siswa pada daftar induk dengan kedua cara tersebut, lalu mengurutkan hasilnya agar nomor kembar mudah terbaca.
"""Pensampelan acak sederhana dengan dan tanpa pengembalian."""
import numpy as np
rng = np.random.default_rng(42)
# Daftar siswa berupa nomor induk 1 sampai 60
daftar = np.arange(1, 61)
tanpa = rng.choice(daftar, size=20, replace=False)
dengan = rng.choice(daftar, size=20, replace=True)
print("Sampel tanpa pengembalian :", np.sort(tanpa))
print("Sampel dengan pengembalian :", np.sort(dengan))
print("Nomor unik tanpa pengembalian :", np.unique(tanpa).size)
print("Nomor unik dengan pengembalian:", np.unique(dengan).size)Sampel tanpa pengembalian : [ 4 5 8 10 20 27 28 29 30 33 34 39 40 42 45 50 51 55 56 59]
Sampel dengan pengembalian : [ 3 5 10 10 12 22 22 27 29 30 33 38 41 43 45 46 46 47 54 59]
Nomor unik tanpa pengembalian : 20
Nomor unik dengan pengembalian: 17Sampel tanpa pengembalian memuat 20 nomor unik karena satu nomor tidak mungkin muncul dua kali. Sampel dengan pengembalian hanya memuat 17 nomor unik, yaitu nomor 10, 22, dan 46 muncul masing-masing dua kali. Pengembalian dipakai dalam teori karena menjamin tarikan saling bebas, sedangkan survei nyata hampir selalu tanpa pengembalian karena satu responden tidak perlu diwawancarai dua kali. Pada populasi yang jauh lebih besar daripada sampelnya, beda kedua cara itu dapat diabaikan.
Pensampelan berstrata#
Pensampelan berstrata (stratified sampling) membagi populasi menjadi kelompok-kelompok yang sejenis di dalamnya, lalu menarik sampel acak dari setiap kelompok. Kelompok itu disebut strata (stratum). Kuota tiap strata diatur proporsional terhadap ukurannya, sehingga kelompok besar mendapat porsi besar dan kelompok kecil tetap terwakili. Diagram berikut memperlihatkan pembagian kuotanya.
Syarat praktisnya satu, yaitu keanggotaan strata harus diketahui sebelum pensampelan dilakukan. Skrip berikut membandingkan tiga cara menaksir rata-rata jam belajar mingguan dari populasi 1000 siswa, yaitu 600 siswa kelas pagi dan 400 siswa kelas sore. Pensampelan acak sederhana menarik 100 siswa dari seluruh populasi. Pensampelan berstrata menarik 60 siswa dari kelas pagi dan 40 siswa dari kelas sore sesuai proporsinya. Sampel kenyamanan hanya mengambil 100 siswa kelas pagi karena paling mudah dijangkau. Setiap cara diulang 10000 kali agar rata-rata perilakunya dapat dibandingkan dengan parameter yang sebenarnya.
"""Perbandingan estimasi acak sederhana, berstrata, dan sampel kenyamanan."""
import numpy as np
rng = np.random.default_rng(42)
# Populasi 1000 siswa: 600 kelas pagi, 400 kelas sore
pagi = rng.normal(5.0, 2.0, size=600)
sore = rng.normal(3.0, 1.5, size=400)
populasi = np.concatenate([pagi, sore])
print(f"Rata-rata jam belajar populasi : {np.mean(populasi):.4f}")
print(f"Rata-rata jam belajar pagi : {np.mean(pagi):.4f}")
print(f"Rata-rata jam belajar sore : {np.mean(sore):.4f}")
ULANG = 10_000
est_srs = np.empty(ULANG)
est_strata = np.empty(ULANG)
est_nyaman = np.empty(ULANG)
for i in range(ULANG):
est_srs[i] = np.mean(rng.choice(populasi, size=100, replace=False))
strata = np.concatenate([rng.choice(pagi, size=60, replace=False),
rng.choice(sore, size=40, replace=False)])
est_strata[i] = np.mean(strata)
est_nyaman[i] = np.mean(rng.choice(pagi, size=100, replace=False))
print(f"Rata-rata estimasi acak sederhana : {np.mean(est_srs):.4f}")
print(f"Rata-rata estimasi berstrata : {np.mean(est_strata):.4f}")
print(f"Rata-rata estimasi kenyamanan : {np.mean(est_nyaman):.4f}")Rata-rata jam belajar populasi : 4.1488
Rata-rata jam belajar pagi : 4.9477
Rata-rata jam belajar sore : 2.9505
Rata-rata estimasi acak sederhana : 4.1482
Rata-rata estimasi berstrata : 4.1505
Rata-rata estimasi kenyamanan : 4.9492Rata-rata populasi tercetak 4.1488 jam, hasil campuran dua kelompok yang rata-ratanya berbeda jauh. Estimasi acak sederhana dan berstrata sama-sama berkumpul tepat di parameter itu karena keduanya memberi setiap siswa peluang yang layak untuk terpilih. Estimasi sampel kenyamanan menetap di 4.9492, nyaris sama dengan rata-rata kelas pagi 4.9477, dan terus meleset dari parameter 4.1488 berapa pun banyaknya pengulangan. Selisih yang konsisten sebesar 0.8 jam itulah bias pemilihan (selection bias), yaitu penyimpangan sistematis yang berasal dari cara memilih sampel, bukan dari kebetulan.
Sumber bias pemilihan#
Dua sumber bias pemilihan yang paling sering muncul adalah sampel sukarela dan sampel kenyamanan. Sampel sukarela (volunteer sample) menyusun data dari anggota yang menawarkan diri sendiri, misalnya survei daring jam belajar yang diisi bebas oleh siapa pun. Responden yang bersedia biasanya lebih antusias terhadap tema survei daripada rata-rata populasi, sehingga jawabannya bergeser dari pola umum. Sampel kenyamanan (convenience sample) memilih anggota yang paling mudah dijangkau, misalnya hanya menanyai siswa yang kebetulan berada di satu ruangan pada satu jam tertentu.
Kedua sampel itu terlihat sehat dari luarnya karena jumlah datanya bisa besar, tetapi mekanisme pemilihannya mengarahkan isi sampel. Survei yang disebar di perpustakaan pada jam belajar misalnya hanya menjangkau siswa yang sedang belajar, sehingga jam belajarnya terlalu tinggi. Pemilihan yang tertib pun bisa bias apabila daftar sasarannya tidak lengkap, misalnya daftar telepon yang tidak memuat siswa tanpa telepon. Diagnosisnya sederhana, yaitu memeriksa cara anggota sampel masuk ke data sebelum angkanya dipakai. Apabila mekanisme itu menguntungkan kelompok tertentu, kesimpulan tentang populasi perlu ditahan.
Kesalahan umum#
- Menilai keterwakilan dari jumlah data. Sampel 5000 responden sukarela tetap mewakili orang yang mau merespons, bukan seluruh populasi. Perbaikannya, periksa mekanisme pemilihan sampel terlebih dahulu, baru pertimbangkan ukurannya.
- Membagi strata setelah data terkumpul tanpa daftar keanggotaan. Kuota proporsional menuntut keanggotaan setiap strata diketahui sebelum pengambilan. Perbaikannya, tetapkan strata beserta kuotanya pada rancangan, sebelum data diambil.
- Menganggap berstrata sama dengan memilih sepihak dari tiap kelompok. Kuota pada berstrata hanya menetapkan jumlahnya, sedangkan anggotanya tetap dipilih dengan undian acak. Perbaikannya, jalankan
rng.choicedi dalam setiap strata agar keacakannya terjaga.
Ringkasan#
- Pensampelan acak sederhana memberi setiap kombinasi anggota peluang sama, dengan argumen
replacepadarng.choicemengatur pengembalian. - Pensampelan berstrata menarik sampel acak dari setiap strata dengan kuota proporsional, sehingga kelompok kecil tetap terwakili.
- Simulasi 10000 pengulangan menunjukkan estimasi acak sederhana dan berstrata berkumpul di parameter 4.1488, sedangkan sampel kenyamanan menetap di 4.9492.
- Bias pemilihan berasal dari mekanisme pemilihan sampel dan tidak dapat diperbaiki dengan membesarkan ukuran sampel.
Referensi#
- NumPy Generator — NumPy — Referensi resmi pembangkit acak yang menyediakan metode pengundian sampel pada topik ini.
- numpy.random.Generator.choice — NumPy — Dokumentasi argumen replace yang membedakan pengambilan dengan dan tanpa pengembalian.
- OpenIntro Statistics — OpenIntro — Buku terbuka yang membahas sampel acak, sampel sukarela, dan bias pemilihan pada bab sumber datanya.