Membandingkan Rating dengan Jumlah Sampel yang Berbeda

Misalkan kita mempunyai rating dari dua produk sbb:

  • produk A mempunyai satu “like” dari satu pembeli
  • produk B mempunyai sembilan puluh “like” dari seratus pembeli

Manakah yang lebih baik dari keduanya? Produk A karena nilai ratingnya 10/10, atau produk B karena nilai ratingnya lumayan tinggi (9/10) dan mempunyai responden yang jauh lebih banyak?

Ini adalah kali kedua saya menghadapi permasalahan seperti ini, dan sayangnya saya kehilangan catatan dari studi saya yang pertama, jadi saya harus mencari-cari lagi dari awal. Karena itulah sekarang saya catat di sini biar lebih gampang mencarinya di masa yang akan datang.

Penting untuk dicatat bahwa dalam permasalahan ini responden hanya bisa memberikan jawaban boolean saja, misalnya suka/tidak, thumbs up/down, benar/salah, dsb (jadi bukan nilai seperti misalnya satu bintang sampai lima bintang). Dalam masalah saya, yang saya bandingkan adalah accuracy dari beberapa sistem pengambil keputusan.

Salah satu metoda yang saya temukan adalah di https://www.evanmiller.org/how-not-to-sort-by-average-rating.html. Saya tidak akan membahas panjang lebar tentang teorinya karena saya juga tidak tahu hehe, silakan Anda dalami sendiri. Metoda ini untuk menjawab pertanyaan: kalau Anda ingin 95% yakin, maka berapakah batas bawah dari nilai rating yang sebenarnya.

Praktisnya, Anda juga bisa menemukan kode Python di Stack Overflow:

import math
import scipy.stats as st

def ci_lower_bound(pos, n, confidence=0.95):
    if n == 0:
        return 0
    z = st.norm.ppf(1 - (1 - confidence) / 2)
    phat = 1.0 * pos / n
    return (phat + z * z / (2 * n) - z * math.sqrt((phat * (1 - phat) + z * z / (4 * n)) / n)) / (1 + z * z / n)

Kembali ke pertanyaan semula, maka batas bawah dari rating produk A dan B dengan confidence 95% adalah sbb.

Produk A, satu jawaban positif dari satu responden, batas bawahnya adalah:

ci_lower_bound(1, 1, 0.95)
0.20654931437723742

Artinya saya 95% yakin bahwa rating sebenarnya dari produk A minimal adalah 0.2. Kenapa rendah sekali? Ya karena respondennya hanya 1 orang. Kalau besok ada satu responden yang tidak memberikan nilai positif saja, maka ratingnya sudah akan turun jadi 0.5.

Harus dipahami bahwa kita tidak tahu nilai rating yang sebenarnya dari produk A (atau produk B). Nilai yang kita dapat sekarang hanya nilai empiris atau hasil pengamatan saat ini saja. Kalau nanti ada responden baru, nilai rating yang kita amati akan berubah. Jadi kita hanya bisa memperkirakan range-nya, dengan keyakinan tertentu. Dengan lebih banyak data (pengamatan), maka kita menjadi semakin yakin (confident) bahwa nilai itu semakin mendekati nilai yang sebenarnya.

Kembali ke produk A. Misalkan kita ingin lebih yakin, misalnya 97.5% yakin:

ci_lower_bound(1, 1, 0.975)
0.16600579242446528

Artinya kalau kita ingin 97.5% yakin tentang batas bawah rating sesungguhnya dari produk A, maka otomatis batas bawahnya turun, menjadi 0.166. Mudah-mudahan Anda mendapatkan intuisinya.

Sedangkan produk B mempunyai 95 penilaian positif dari 100 responden, maka batas bawahnya adalah:

ci_lower_bound(95, 100, 0.95)
0.8882495307680808

Artinya saya 95% yakin kalau rating sebenarnya dari produk B minimal adalah 0.89.

Dengan metoda yang diusulkan di artikel tersebut, rating produk B adalah lebih baik dari rating produk A.

Itulah salah satu metoda yang saya temukan. Saya yakin kawan-kawan mengetahui metoda-metoda yang lain, silakan dibagikan di komen ya. Terima kasih.

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

Blog di WordPress.com.

Atas ↑

%d blogger menyukai ini: