Catatan dari produksi
FundamentalsTestingMetrics

True/false vs positive/negative, dijelaskan

Setiap tes memberi satu dari dua jawaban — "ya" atau "tidak" — dan kenyataan juga salah satu dari dua — "benar-benar ada" atau "benar-benar tidak". Pasangkan keduanya dan Anda dapat empat hasil: dua saat tes benar, dua saat tes salah. Itulah true positive, true negative, false positive, dan false negative — empat kata yang dipakai di mana-mana, dari alarm asap sampai tes darah sampai filter spam.

Artikel ini menaruh keempatnya dalam satu kotak 2×2, menjelaskan tiap sudut dengan bahasa sederhana, lalu menunjukkan kasus teknis dan kasus medisnya. Tapi ada satu aturan yang harus lebih dulu.

Satu aturan lebih dulu: tandai apa itu "positif"

Sebelum kata "true positive" berarti apa pun, Anda harus menetapkan apa yang dihitung sebagai positif. Positif adalah hal yang Anda cari: pada tes penyakit, positif = "pasien sakit"; pada filter spam, positif = "pesan ini spam"; pada alarm asap, positif = "ada api". Balikkan definisi itu, dan tiap true positive berubah jadi true negative.

Selalu tandai apa arti "positif" lebih dulu. Balikkan satu definisi itu, dan setiap true positive berubah jadi true negative.

Aturan nomor satu

Jadi di tiap kasus di bawah, kalimat pertama selalu sama: positif di sini berarti…. Tanpa itu, keempat kotak tak bermakna.

Empat kotak: true/false × positive/negative

Susun dua sumbu. Ke samping: kenyataan — kondisinya benar-benar ada atau tidak. Ke bawah: panggilan tes — positif atau negatif. Perpotongannya memberi empat kotak.

REALITY (the truth)condition PRESENTcondition ABSENTTHE TEST'S CALLpositivenegativeTPtrue positive✓ correctFPfalse positive✗ false alarmFNfalse negative✗ a missTNtrue negative✓ correct
Sumbu-x kenyataan, sumbu-y panggilan tes. Diagonal 'true' benar; diagonal 'false' adalah dua jenis kesalahan.

Cara membacanya sederhana. Kata pertama (true/false) berkata apakah tes benar; kata kedua (positive/negative) berkata apa yang tes katakan:

Seluruh tabel ini punya nama: confusion matrix. Diagonal yang benar (TP + TN) adalah saat tes cocok dengan kenyataan; dua kotak lain adalah dua cara tes bisa keliru.

Sudut pandang teknis: kasus-kasus

Di software, keempat kotak muncul terus — dan tiap kasus mulai dengan menandai "positif":

  • Filter spampositif = "pesan ini spam". TP: spam masuk folder junk. FP: email asli ikut ke junk (menyebalkan). FN: spam lolos ke inbox. TN: email asli sampai ke inbox.
  • Alert monitoringpositif = "ada masalah, bunyikan alarm". FP: alarm berbunyi padahal aman (alarm palsu yang bikin tim lelah). FN: masalah nyata lolos tanpa alarm.
  • Cookie SameSite=Laxpositif = "cookie ikut dikirim". Persis tabel di Keamanan cookie: klik link sah = true positive, request CSRF yang ditahan = true negative.
Kasus"Positif" berartiError yang paling mahal
Filter spampesan ini spamFalse positive — email asli hilang
Skrining penyakitpasien sakitFalse negative — diagnosis terlewat
Deteksi intrusiini seranganFalse negative — penyusup lolos
Blokir fraudtransaksi ini penipuanFalse positive — kartu asli ditolak

Kasus medis: tes skrining penyakit

Di kedokteran, keempat kotak ini punya taruhan nyata. Positif = "tes bilang Anda mengidap penyakitnya".

THE PATIENTactually SICKactually HEALTHYSCREENING TESTtest +test −TPcaught it✓ treat earlyFPfalse alarmneedless retestFNmissed it⚠ the dangerTNall clear✓ go home
Kotak yang sama untuk tes skrining. False negative — sakit tapi tes bilang bersih — adalah yang berbahaya: diagnosis yang terlewat.
  • True positive — sakit, dan tes menangkapnya. Pengobatan bisa mulai lebih awal.
  • True negative — sehat, dan tes bilang bersih. Pulang dengan tenang.
  • False positive — sehat, tapi tes bilang positif. Alarm palsu: cemas dan tes lanjutan yang tak perlu.
  • False negative — sakit, tapi tes bilang bersih. Inilah yang ditakuti: penyakit terlewat dan tak ditangani.

Itu sebabnya tes skrining diukur dengan dua angka. Sensitivity adalah seberapa jarang tes melewatkan yang sakit (sedikit false negative); specificity adalah seberapa jarang tes salah menuduh yang sehat (sedikit false positive).

Anda tak bisa menol-kan keduanya

Ini pertukaran yang tak bisa dihindari: setel tes agar lebih jarang melewatkan (kurangi false negative), dan ia jadi lebih cerewet (lebih banyak false positive). Setel agar lebih tenang (kurangi false positive), dan ia lebih sering melewatkan. Anda tak bisa membuat keduanya nol sekaligus — Anda memilih error mana yang paling tak mampu Anda tanggung.

When a MISS is worstcut false negatives — accept more false alarmscancer screeningintrusion detectionsmoke alarmWhen a FALSE ALARM is worstcut false positives — accept more missesspam filterfraud blockflaky test suite
Error mana yang lebih mahal tergantung domain — dan itu menentukan ke arah mana Anda menyetel tes.

Intinya

Empat hasil, dua sumbu: apa kata tes (positive/negative) dibanding apa kenyataannya (true/false). True positive dan true negative benar; false positive adalah alarm palsu, false negative adalah yang terlewat. Tapi semuanya bergantung pada satu langkah lebih dulu — tandai apa arti "positif". Setelah itu jelas, Anda tinggal memilih error mana yang paling mahal di kasus Anda.

Untuk contoh software yang terjadi utuh, lihat tabel kasus Lax di Keamanan cookie: SameSite, HttpOnly, Secure.

Sources

  1. Wikipedia — Confusion matrix
  2. Wikipedia — Sensitivity and specificity
  3. Wikipedia — Type I and type II errors