Tuesday, December 1, 2015

Menghitung Tingkat Kepercayaan untuk Crowdsourced Count



Pada Pilpres 2014 yang lalu saya menjalankan inisiatif crowdsourced count melalui situs KawalSuara. Melalui web app tersebut, relawan dapat membantu proses penghitungan suara dengan memasukkan angka perolehan sesuai scan formulir C1 yang dipublikasikan oleh KPU.
 
Masalah utama bagi penghitungan suara berbasis gotong royong ini adalah tidak semua relawan dapat dipercaya 100%. Adanya oknum-oknum yang sengaja mengisi data yang salah ini perlu diantisipasi. Strategi utama yang saya adalah mengusahakan agar setiap TPS dientri oleh 2 atau lebih relawan. Agar sebuah data bisa dianggap terverifikasi, diperlukan dua entri dengan nilai yang sama. Strategi ini terbukti efektif di mana hasil penghitungan Kawal-Suara sangat mendekati rekapitulasi resmi.
 
Kekurangan dari strategi ini adalah entri data menjadi kurang efisien. Pada kasus Pilpres 2014, jumlah total entri data mencapai lebih dari 730,000. Seandainya semua kontribusi itu dianggap valid tentunya lebih dari cukup untuk entri data 478,000 TPS. Namun karena rata2 setiap TPS perlu lebih dari 2 kontribusi agar dianggap terverifikasi, maka perhitungan baru mencapai hampir 60% (286,000 TPS) artinya efisiensi hanya 39%.
 
Kekurangan lainnya adalah tidak adanya angka tingkat kepercayaan (confidence level) atas hasil penghitungan suara. Berbeda dengan metode Quick Count yang dapat mengklaim margin error sekian % dengan tingkat kepercayaan sekian %. Ide saya untuk memperbaiki keadaan ini adalah dengan menghitung tingkat kepercayaan (confidence level) dari para relawan dan tingkat kepercayaan dari hasil penghitungan.
 

Tingkat Kepercayaan dari Hasil Perhitungan

Kita mulai dengan tingkat kepercayaan untuk satu item yang dientri. Per scan C1 setidaknya ada beberapa item: Suara untuk kandidat 1, suara untuk kandidat 2, total suara, dan seterusnya. 
 
Definisi:
            P(Ri)    Probabilitas relawan Ri mengentri nilai yang benar.
                        Dengan kata lain
P(Ri)  adalah tingkat kepercayaan dari relawan Ri.
            P(A)     Probabilitas item A telah dientri dengan nilai yang benar         

Jika sebuah item A hanya dientri oleh Ri, maka menghitung tingkat kepercayaan untuk item tersebut adalah suatu hal yang trivial:
            P(A) = P(Ri)                                                                             (i)

Jika dua orang mengentri nilai yang sama pada item I, maka P(A) dapat dihitung berdasarkan conditional probability.
 
Definisi:
P(B)     Probabilitas relawan R1 & relawan R2 mengentri nilai yang benar
P(S)     Probabilitas relawan R1 & relawan R2 mengentri nilai yang sama
P(B|S)  Probabilitas nilai yang benar telah dientri jika R1 & R2
                         mengentri nilai yang sama
P(S|B)  Probabilitas R1 & R2 mengentri nilai yang sama jika keduanya
                         mengentri nilai yang benar
                         P(S|B) = 1, karena hanya ada satu nilai yang benar.

Berdasarkan Bayes Theorem:
                                        (ii)

Definisi:
            P(Rij)    Probabilitas relawan Ri mengentri nilai j
            P(Sj)     Probabilitas relawan R1 & R2 mengentri nilai j
            P(Sj)    = P(r1j)P(R2j)  
            S          = U Sj               // S adalah union Sj untuk semua j

karena Sj tidak beririsan satu sama lain (mutually exclusive), maka:
            P(S)     = P(U Sj)                       
                                                                             (iii)

Dengan asumsi probabilitas relawan Ri mengisi nilai yang salah adalah sama untuk semua nilai yang salah:
             P(Rij)     =           jika j salah       
                           = P(Ri)               jika j benar
Maka:


 Dari hasil ini kita bisa melihat bahwa dengan P(Ri) yang relatif rendah pun (misal 0.5) untuk n = 100, P(A) akan melonjak menjadi 0.99 jika setidaknya 2 relawan mengisi nilai yang sama.
 
Meskipun tingkat kepercayaan untuk satu item dapat ditentukan, tidak serta-merta tingkat kepercayaan seluruh hasil perhitungan (rekapitulasi) dapat dengan mudah ditentukan, karena memang agak sulit untuk menentukan margin error nya (setidaknya sulit bagi saya). Maka untuk menilai hasil rekapitulasi, ukuran yang saya usulkan adalah rata-rata tingkat kepercayaan yang mudah dihitung.
 

Tingkat Kepercayaan dari Relawan

Pertanyaan selanjutnya adalah bagaimana menentukan tingkat kepercayaan dari setiap relawan. Untuk ini strategi yang saya usulkan adalah memberi nilai awal yang relatif rendah, misal 0.5. Kemudian setiap beberapa entri yang dilakukan oleh relawan tersebut, system akan memberikan sebuah tes “kejujuran”. Artinya scan C1yang ditampilkan adalah yang sudah diketahui/diverifikasi nilainya. Tingkat kepercayaan dari relawan dapat dihitung sebagai persentase entri yang benar dalam tes tersebut.
 
Tes kejujuran ini perlu dilakukan secara rutin dan acak,  misal sekali setiap 5 entri. Pada awalnya admin system perlu menyiapkan beberapa item scan C1 yang telah diverifikasi. Namun untuk selanjutnya item-item yang telah dihitung mempunya tingkat kepercayaan tinggi (misal > 95%) dapat digunakan sebagai bahan test. Rumus untuk menghitung tingkat kepercayaan relawan dapat disesuaikan agar memperhitungkan tingkat kepercayaan item yang tidak 100% ini.
 
Selain itu, perlu di beri limit maksimal atas tingkat kepercayaan relawan, misal 90%. Dengan tingkat kepercayaan 100%, entri dari relawan tersebut dianggap sebagai kebenaran absolut. Sesuatu yang sebaiknya dihindari, karena meskipun relawan yang bersangkutan memang benar-benar jujur, tidak tertutup kemungkinan ia salah mengetik.
 

Kelemahan

Formula tingkat kepercayaan untuk sebuah item data (vi), menjadi tidak valid jika asumsi yang digunakan (probabilitas seorang relawan mengentri nilai yang salah adalah sama untuk semua nilai yang salah) tidak valid. Salah satu kasus di mana asumsi ini menjadi tidak valid adalah jika dua relawan bersekongkol untuk mengisi angka salah yang sama pada sebuah item.
Strategi yang mungkin dilakukan untuk mengantisipasi hal ini:

  • Scan C1 yang ditampilkan dipilih oleh system secara acak. Relawan tidak diperbolehkan memilih sendiri scan C1 yang akan dientri.
  • Mewaspadai nilai tertentu yang tingkat kemunculannya jauh lebih sering dibandingkan nilai lainnya.

Kesimpulan

Dengan menerapkan perhitungan tingkat kepercayaan ini dalam proses crowdsourced count setidaknya ada dua keuntungan:

  • Efisiensi proses crowdsourced count dapat ditingkatkan. Sebelumnya semua entri mendapat tingkat kepercayaan yang sama. Meskipun diketahui entri tersebut berasal dari relawan yang tidak terpercaya. Dengan teknik ini, satu entri dari relawan yang sangat terpercaya bisa dianggap lebih, well, terpercaya, daripada dua entri sama dari relawan dengan tingkat kepercayaan rendah. Dengan kata lain satu entri dari relawan yang terpercaya sudah cukup untuk mencapai tingkat kepercayaan tertentu pada sebuah item.
    Jadi efisiensi dapat ditingkatkan dari sebelumnya selalu < 0.5 (50%), menjadi mendekati (1 – 1/k) jika tes kejujuran dilakukan sekali setiap k entri.
  • Dapat mengklaim sebuah angka sebagai Rata-Rata Tingkat Kepercayaan yang menjadi ukuran (measure) hasil perhitungan suara. Ukuran lain yang dapat digunakan oleh metode crowdsourced count adalah Completeness (menunjukkan persentase item yang telah di-entri).

 

No comments: