Penerapan PPS Sampling Hasil Scraping GoogleSheet Pendaftar Sekolah Kedinasan dengan Python |
Pada artikel sebelumnya, kita telah banyak membahas mengenai teknik sampling menggunakan R. Setelah pada artikel kemarin kita mulai beranjak untuk membahas teknik Simple Random Sampling (SRS) dengan Python, kini kita akan mencoba mengulas bagaimana penerapan teknik pengambilan sampel Probability Proportional to Size (PPS) dengan Python.
Probability Proportional to Size Sampling (PPS Sampling) merupakan salah satu teknik pengambilan sampel dalam statistika untuk memilih unit populasi secara acak dengan mempertimbangkan besarnya proporsi serta variabel berupa informasi tambahan (auxilary information) dalam populasi. PPS Sampling biasa dimanfaatkan ketika size unit populasi berbeda-beda sedangkan kita memerlukan sampel yang mampu mewakili populasi secara proporsional.
Dalam PPS Sampling, setiap unit populasi diberi identitas unik kemudian diberi bobot yang sesuai dengan Size masing-masing. Unit-unit dengan bobot yang lebih besar tentu berpeluang besar terpilih sebagai sampel. Demikian sebaliknya, untuk unit berbobot kecil maka peluang terpilih menjadi sampel juga kecil.
Berdasarkan cara pengambilannya, PPS Sampling terbagi dalam 2 cara, yakni pengambilan dengan pengembalian (with replacement) dan pengambilan tanpa pengembalian (without replacement). Dalam PPS Sampling tanpa pengembalian (wor), setiap unit populasi telah terpilih tidak dikembalikan ke dalam populasi, sehingga tidak berpeluang terpilih kembali pada pengambilan berikutnya. Sedangkan dalam PPS Sampling dengan pengembalian (wr), setiap unit dalam populasi yang telah terpilih dikembalikan dalam populasi dan karenanya unit tersebut mempengaruhi peluang terambilnya sampel pada pengambilan berikutnya.
Kelebihan PPS Sampling
PPS sampling ini pada praktiknya banyak sekali diterapkan karena cukup baik untuk populasi dengan unit-unit yang ukurannya berbeda. Hal ini sekaligus menjelaskan salah satu kelebihan dari PPS sampling. Selain itu, beberapa kelebihan lain dari Probability Proportional to Size Sampling (PPS Sampling) dapat kita uraikan sebagai berikut:
Efisien: PPS Sampling memungkinkan pengambilan sampel lebih efisien dibandingkan dengan teknik pengambilan sampel (SRS) karena unit-unit populasi yang lebih besar memiliki probabilitas yang lebih besar untuk dipilih dalam sampel. Ini mengartikan jumlah sampel yang dibutuhkan mencapai tingkat kepercayaan yang sama bisa lebih sedikit daripada teknik SRS;
Mudah dilakukan: PPS Sampling relatif mudah dilakukan dan dapat dilakukan, terlebih dengan adanya perangkat statistik yang beragam saat ini;
Fleksibel: PPS Sampling dapat disesuaikan dengan berbagai jenis data, termasuk data yang berdistribusi normal atau tidak normal, data yang berdistribusi simetris atau asimetris, dan data yang berdistribusi tunggal atau banyak;
Memungkinkan analisis stratifikasi: PPS Sampling memungkinkan analisis stratifikasi untuk dilakukan, yang memungkinkan pengambilan sampel yang lebih spesifik dan fokus pada subpopulasi tertentu yang dianggap penting atau menarik dalam populasi secara keseluruhan.
Kelemahan PPS Sampling
Kendati memiliki sejumlah kelebihan, PPS sampling juga tak lepas dari kelemahan. Berikut adalah beberapa kelemahan dari teknik sampling ini:
Kesulitan dalam menentukan bobot unit-unit populasi: PPS Sampling membutuhkan informasi tentang ukuran unit-unit populasi untuk menentukan bobotnya. Jika informasi ini tidak tersedia atau sulit didapatkan, maka PPS Sampling tidak dapat dilakukan dengan efektif.
Sulit dalam menangani unit-unit populasi yang sangat besar: Jika terdapat unit-unit populasi yang sangat besar, maka PPS Sampling dapat menghasilkan sampel yang terlalu besar dan sulit untuk dikelola atau menganalisis.
Memerlukan perangkat lunak khusus: PPS Sampling memerlukan perangkat lunak statistik khusus untuk menghitung bobot unit-unit populasi dan mengambil sampel yang sesuai. Jika tidak memiliki akses atau kemampuan untuk menggunakan perangkat lunak tersebut, maka PPS Sampling tidak dapat dilakukan.
Rentan terhadap kesalahan non-sampling: Seperti halnya dengan teknik pengambilan sampel lainnya, PPS Sampling juga rentan terhadap kesalahan non-sampling, seperti kesalahan dalam pengukuran atau pengamatan variabel-variabel yang terlibat dalam studi.
Memerlukan waktu dan sumber daya yang lebih banyak: PPS Sampling memerlukan waktu dan sumber daya yang lebih banyak daripada teknik pengambilan sampel acak sederhana karena memerlukan perhitungan yang lebih rumit dan cermat dalam menentukan bobot unit-unit populasi.
Baik, itu sekilas penjelasan mengenai PPS sampling. Selanjutnya, dalam artikel ini kita akan mempraktikkan web scraping dan teknik sampling sekaligus. Obyek yang menjadi target scraping kita adalah data berbentuk googlesheet perkembangan pendaftaran Sekolah Kedinasan per 14 April 2023. Adapun alat untuk kita gunakan web scraping adalah Python. Setelah itu, kita akan coba untuk memilih 10 Sekolah Kedinasan untuk memperoleh target misalkan rata-rata nilai rapor pendaftar Sekolah Kedinasan tahun 2023. Sebagai catatan bahwa auxilary information dalam praktik kita kali ini adalah jumlah peserta yang berhasil melakukan submit pendaftaran Sekolah kedinasan.
Berikut langkah-langkah web scraping googlesheet pendaftar Sekolah Kedinasan dan kemudian menerapkan PPS sampling:
#Aktivasi beberapa package
import pandas as pd
import numpy as np
import requests
from scrapy.http import TextResponse
#Deklarasi alamat googlesheet
url = "https://docs.google.com/spreadsheets/d/1LulknrCZ_wOBnLfQOqSHRgxIeq4DMYGufwZH57LMHfs/htmlview"
res = requests.get(url)
respon = TextResponse(res.url, body = res.text, encoding = "utf-8")
#Melihat status alamat googlesheet
respon
<200 https://docs.google.com/spreadsheets/d/1LulknrCZ_wOBnLfQOqSHRgxIeq4DMYGufwZH57LMHfs/htmlview>
#Scrape nama sekolah kedinasan
nmkedin = respon.css(".s9+ .s5::text, .s5 .softmerge-inner::text").getall()
#Scrape jumlah peserta yang telah memilih sekolah kedinasan
pilihkedin = respon.css(".s9:nth-child(4)::text, .s10:nth-child(4)::text").getall()
#Scrape jumlah peserta yang telah submit
submitkedin = respon.css(".s9:nth-child(5)::text, .s10:nth-child(5)::text").getall()
#Scrape jumlah peserta yang belum verifikasi
bverifkedin = respon.css(".s9:nth-child(6)::text, .s10:nth-child(6)::text").getall()
#Scrape jumlah peserta yang telah verifikasi MS
vmskedin = respon.css(".s9:nth-child(7)::text, .s10:nth-child(7)::text").getall()
#Scrape jumlah peserta yang telah verifikasi TMS
vtmskedin = respon.css(".s9:nth-child(8)::text, .s10:nth-child(8)::text").getall()
#Menggabungkan dataframe
kedinasan = pd.DataFrame({'Sekolah Kedinasan':nmkedin, 'Pilih Kedinasan': pilihkedin,
'Submit':submitkedin, 'Belum Verif': bverifkedin,
'Verif MS':vmskedin, 'Verif TMS': vtmskedin})
kedinasan
Sekolah Kedinasan | Pilih Kedinasan | Submit | Belum Verif | Verif MS | Verif TMS | |
---|---|---|---|---|---|---|
0 | POLITEKNIK KEUANGAN NEGARA STAN | 8010 | 5547 | 5547 | 0 | 0 |
1 | SEKOLAH TINGGI INTELIJEN NEGARA | 4802 | 4504 | 4504 | 0 | 0 |
2 | POLITEKNIK STATISTIKA STIS | 5066 | 4453 | 4453 | 0 | 0 |
3 | INSTITUT PEMERINTAHAN DALAM NEGERI | 9379 | 3094 | 9 | 2862 | 223 |
4 | POLITEKNIK IMIGRASI (POLTEKIM) | 4930 | 1832 | 1832 | 0 | 0 |
5 | POLITEKNIK ILMU PEMASYARAKATAN (POLTEKIP) | 4224 | 1508 | 1508 | 0 | 0 |
6 | POLITEKNIK TRANSPORTASI DARAT INDONESIA - STTD... | 3835 | 1459 | 66 | 1256 | 137 |
7 | POLITEKNIK PERKERETAAPIAN INDONESIA (PPI) MADIUN | 1831 | 598 | 62 | 536 | 0 |
8 | POLITEKNIK SIBER DAN SANDI NEGARA | 1288 | 594 | 228 | 342 | 24 |
9 | POLITEKNIK TRANSPORTASI SUNGAI DANAU DAN PENYE... | 1135 | 404 | 100 | 274 | 30 |
10 | POLITEKNIK KESELAMATAN TRANSPORTASI JALAN (PKT... | 911 | 339 | 12 | 302 | 25 |
11 | SEKOLAH TINGGI METEOROLOGI KLIMATOLOGI DAN GEO... | 315 | 204 | 57 | 141 | 6 |
12 | POLITEKNIK PENERBANGAN INDONESIA (PPI) CURUG | 560 | 189 | 47 | 131 | 11 |
13 | POLITEKNIK PENERBANGAN (POLTEKBANG) SURABAYA | 524 | 173 | 99 | 74 | 0 |
14 | SEKOLAH TINGGI ILMU PELAYARAN (STIP) JAKARTA | 403 | 165 | 8 | 145 | 12 |
15 | POLITEKNIK TRANSPORTASI DARAT (POLTRADA) BALI | 396 | 144 | 41 | 102 | 1 |
16 | POLITEKNIK ILMU PELAYARAN (PIP) MAKASSAR | 274 | 125 | 67 | 47 | 11 |
17 | POLITEKNIK ILMU PELAYARAN (PIP) SEMARANG | 279 | 120 | 11 | 93 | 16 |
18 | POLITEKNIK PENERBANGAN (POLTEKBANG) MEDAN | 296 | 91 | 22 | 57 | 12 |
19 | POLITEKNIK PENERBANGAN (POLTEKBANG) MAKASSAR | 238 | 89 | 9 | 80 | 0 |
20 | POLITEKNIK PENERBANGAN (POLTEKBANG) PALEMBANG | 255 | 85 | 21 | 64 | 0 |
21 | POLITEKNIK PELAYARAN (POLTEKPEL) SUMATERA BARAT | 195 | 68 | 39 | 25 | 4 |
22 | AKADEMI PENERBANG INDONESIA (API) BANYUWANGI | 191 | 60 | 2 | 54 | 4 |
23 | POLITEKNIK PELAYARAN (POLTEKPEL) BANTEN | 114 | 52 | 1 | 44 | 7 |
24 | POLITEKNIK PELAYARAN (POLTEKPEL) MALAHAYATI ACEH | 142 | 51 | 4 | 36 | 11 |
25 | POLITEKNIK PELAYARAN (POLTEKPEL) SURABAYA | 164 | 49 | 17 | 32 | 0 |
26 | POLITEKNIK PENERBANGAN (POLTEKBANG) JAYAPURA | 157 | 46 | 19 | 27 | 0 |
27 | POLITEKNIK PELAYARAN (POLTEKPEL) BAROMBONG | 70 | 30 | 24 | 5 | 1 |
28 | POLITEKNIK PELAYARAN (POLTEKPEL) SULAWESI UTARA | 62 | 23 | 23 | 0 | 0 |
29 | POLITEKNIK ILMU PEMASYARAKATAN (POLTEKIP) FORM... | 52 | 11 | 11 | 0 | 0 |
30 | POLITEKNIK ILMU PEMASYARAKATAN (POLTEKIP) FORM... | 42 | 10 | 10 | 0 | 0 |
31 | POLITEKNIK IMIGRASI (POLTEKIM) FORMASI PAPUA | 43 | 10 | 10 | 0 | 0 |
32 | POLITEKNIK PELAYARAN (POLTEKPEL) SORONG | 45 | 7 | 7 | 0 | 0 |
33 | POLITEKNIK IMIGRASI (POLTEKIM) FORMASI PAPUA B... | 21 | 3 | 3 | 0 | 0 |
#Menghitung probabilitas setiap barisnya dengan Size Submit
kedinasan['Peluang'] = kedinasan['Submit'].astype('float') / kedinasan['Submit'].astype('float').sum()
#Penerapan PPS Sampling dengan mengambil sampel sebanyak 10 Sekolah Kedinasan
sampel = kedinasan.sample(n=10, weights=kedinasan['Peluang'], replace=False)
#Melihat Sampel terpilih
print(sampel)
Sekolah Kedinasan Pilih Kedinasan Submit \ 1 SEKOLAH TINGGI INTELIJEN NEGARA 4802 4504 20 POLITEKNIK PENERBANGAN (POLTEKBANG) PALEMBANG 255 85 2 POLITEKNIK STATISTIKA STIS 5066 4453 7 POLITEKNIK PERKERETAAPIAN INDONESIA (PPI) MADIUN 1831 598 4 POLITEKNIK IMIGRASI (POLTEKIM) 4930 1832 0 POLITEKNIK KEUANGAN NEGARA STAN 8010 5547 12 POLITEKNIK PENERBANGAN INDONESIA (PPI) CURUG 560 189 3 INSTITUT PEMERINTAHAN DALAM NEGERI 9379 3094 5 POLITEKNIK ILMU PEMASYARAKATAN (POLTEKIP) 4224 1508 6 POLITEKNIK TRANSPORTASI DARAT INDONESIA - STTD... 3835 1459 Belum Verif Verif MS Verif TMS Peluang 1 4504 0 0 0.172323 20 21 64 0 0.003252 2 4453 0 0 0.170372 7 62 536 0 0.022879 4 1832 0 0 0.070092 0 5547 0 0 0.212228 12 47 131 11 0.007231 3 9 2862 223 0.118376 5 1508 0 0 0.057696 6 66 1256 137 0.055821
Demikian sedikit sharing kita kali ini. Jangan lupa untuk terus menyimak setiap artikel baru dan unik dalam blog ini. Selamat memahami dan mempraktikkan!