1 poin oleh GN⁺ 2025-04-16 | 1 komentar | Bagikan ke WhatsApp
  • Dalam perhitungan dengan input yang berubah-ubah seperti pindah kerja, kelayakan bisnis, atau investasi, rentang hasil yang mungkin lebih membantu untuk mengambil keputusan daripada satu angka saja
  • Unsure Calculator memungkinkan input rentang seperti 4~6 untuk menghitung dengan nilai yang tidak pasti, dan 10~15 berarti 95% yakin bahwa nilai sebenarnya ada di dalam rentang itu
  • Hasilnya bukan satu angka tunggal, melainkan rentang, distribusi probabilitas, dan persentil; pada contoh pindah kerja ke luar negeri, alat ini menunjukkan saldo bulanan bisa berada di antara -$60~+$220
  • Untuk menjaga input tetap sederhana, notasi seperti jenis distribusi, tingkat kepercayaan, dan kovarians tidak disertakan, sementara perhitungan internal memakai metode Monte Carlo sehingga lambat dan pesan error-nya juga kurang ramah
  • Ini bukan alat untuk pakar statistik, melainkan cocok untuk perhitungan ala belakang serbet seperti ide bisnis, penghematan waktu, risiko pandemi, atau ROI pemasaran; untuk analisis yang rumit tetap dibutuhkan alat khusus

Memasukkan angka yang tidak pasti ke dalam perhitungan

  • Unsure Calculator adalah versi awal dari kalkulator ketidakpastian untuk menangani angka yang tidak pasti
  • Alat ini menyederhanakan statistik menjadi persoalan “saya ingin menarik kesimpulan dari angka-angka ini meskipun angkanya tidak pasti”
  • Bahkan dalam perhitungan sehari-hari pun sering ada banyak nilai input yang tidak pasti, jadi orang yang bukan pakar statistik pun kadang perlu menghitung dengan memasukkan unsur ketidakpastian

Cara penulisan rentang

  • Selain angka biasa seperti 4, 3.14, 43942, alat ini juga mendukung input rentang seperti 4~6, 3.1~3.2, 40000~45000
  • ~ adalah simbol tilde yang diletakkan di antara dua nilai ekstrem, dan juga tersedia di keypad kalkulator
  • Notasi rentang berarti “saya tidak tahu nilai pastinya, tetapi saya 95% yakin bahwa nilai sebenarnya ada dalam rentang ini”
  • 10~15 bisa dibaca sebagai “10 sampai 15”
  • Notasi untuk distribusi probabilitas lain, tingkat kepercayaan lain, truncation, atau kovarians sebenarnya mungkin ditambahkan, tetapi sengaja tidak disertakan karena akan membuatnya lebih sulit dipahami
    • Asumsinya, pengguna yang sudah akrab dengan konsep-konsep itu lebih cocok memakai alat yang lebih canggih
    • Tujuannya adalah agar lebih banyak orang bisa dengan mudah memanfaatkan kekuatan perhitungan statistik

Jebakan saat menghitung dengan satu angka saja

  • Saat menghadapi nilai yang tidak pasti, mudah untuk menganggap “dua-duanya tidak pasti, jadi tidak terlalu penting” lalu melewatinya
  • Jika memilih satu angka yang terasa masuk akal lalu menghitung dengannya, kita mudah tertarik pada kesederhanaan satu jawaban tunggal, padahal hasil yang benar-benar mungkin belum tentu cuma satu
  • Unsure Calculator memasukkan banyak kemungkinan hasil ke dalam perhitungan agar risiko dan peluang bisa terlihat bersama-sama

Contoh perhitungan finansial untuk pindah kerja ke luar negeri

  • Titik awalnya adalah situasi pada 2015 ketika menghitung dampak finansial keluarga dari peluang kerja di luar negeri
    • Gaji baru diketahui setelah sebagian besar proses rekrutmen dilalui
    • Biaya hidup setempat sangat berbeda antara informasi dari teman dan dari internet
    • Tarif pajak juga sulit ditentukan dengan satu persentase sederhana
  • Awalnya perhitungan dilakukan dengan satu nilai yang tampak konservatif
1500 * 0.6 - 650 - 150 - 30 - 20 = 50
  • Perhitungan ini hanya menunjukkan satu hasil: sisa uang +$50 setiap bulan
  • Jika dimasukkan ulang dengan rentang, hasilnya berubah
1400~1700 * 0.55~0.65 - 600~700 - 100~200 - 30 - 20 = -60~220
  • Jika 95% yakin bahwa nilai sebenarnya dari tiap komponen berada dalam rentang tersebut, maka saldo bulanan sebenarnya juga dapat dianggap berada dalam rentang -$60 hingga +$220
  • Ini lebih berguna daripada nilai tunggal +$50 karena memperlihatkan juga kemungkinan rugi uang
  • Persentil memberi informasi yang lebih konkret untuk pengambilan keputusan
    • Jika persentil ke-10 adalah -$8, berarti ada peluang 10% bahwa saldo bulanan berada di -$8 atau lebih rendah
    • Sebaliknya, 90% hasil berada di atas -$8
    • Risiko 5% untuk merugi setidaknya -$33 per bulan juga bisa ikut dipertimbangkan
  • Apakah risiko itu bisa diterima atau tidak tergantung pada keluarga dan situasi masing-masing
    • Toleransi risiko saat belum punya anak dan KPR bisa berbeda dengan saat sudah punya keduanya
    • Jika tidak ada rencana cadangan, kemungkinan rugi 10% bisa dipandang dengan lebih hati-hati

Contoh persamaan Drake

  • Meski ditujukan untuk perhitungan praktis, persamaan Drake (Drake equation) yang memperkirakan jumlah peradaban luar angkasa juga digunakan sebagai contoh
  • Persamaan ini adalah rumus astrofisika untuk memperkirakan jumlah peradaban di galaksi yang mungkin bisa berkomunikasi
  • Nilai asli Frank Drake pada 1961 dikalikan dari unsur-unsur berikut
    • Setiap tahun terbentuk 1 bintang di galaksi
    • Dari jumlah itu, 1/5 memiliki sekitar 3 planet
    • 100% dari planet-planet itu mengembangkan kehidupan
    • 100% dari kehidupan itu menjadi cerdas
    • 10% di antaranya mampu berkomunikasi
    • Keadaan bisa berkomunikasi itu berlangsung selama 1 juta tahun
  • Jika nilai-nilai ini dikalikan, hasilnya 60,000, yang berarti seharusnya ada 60 ribu peradaban di galaksi yang mencoba berkomunikasi pada suatu waktu tertentu
  • Sejak 1961, estimasi tiap parameter sangat bervariasi di kalangan astrofisikawan
  • Contoh dengan estimasi terbaru yang dimasukkan sebagai rentang adalah sebagai berikut
1.5~3 x 0.9~1.0 x 0.1~0.4 x 0.1~1.0 x 0.1~1.0 x 0.1~0.2 x 304~10000
  • Hasil Unsure Calculator menunjukkan bahwa jumlah peradaban yang mungkin dapat diharapkan bisa berada antara 0 dan 450
  • Probabilitasnya condong ke sisi yang lebih rendah, dan histogram juga tampak lebih melebar ke bawah
  • Histogram bisa menampilkan angka negatif seperti -5
    • Ini adalah keterbatasan alat yang memilih kesederhanaan
    • Tanpa pengetahuan tambahan, kalkulator tidak bisa mengetahui batasan bahwa jumlah peradaban tidak mungkin negatif

Contoh penggunaan yang mungkin

  • Dapat menghitung peluang ide bisnis
    • Jika ukuran pasar, pangsa pasar, pendapatan bulanan per pelanggan, dan biaya operasional semuanya tidak pasti
50000~80000 x 0.10~0.20 x 5~10 - 20000~50000
  • Dapat memperkirakan pendapatan masa depan
    • Jika pendapatan bulanan, durasi kontrak, dan tarif pajak tidak pasti
1000~1500 x 10~12 x (30~50 / 100)
  • Dapat menghitung waktu yang dihemat oleh teknologi seperti mesin pencuci piring
    • Jika frekuensi penggunaan per minggu, waktu hemat per penggunaan, umur pakai, dan biaya pemasangan tidak pasti
(3~5 * 5~10 * 51 * 7~15) / 60 - 10~15
  • Dapat memperkirakan total keuntungan akun investasi
    • Jika suku bunga dan periode investasi tidak pasti
5000 x (-2~5 / 100) x 5~10
  • Dapat menghitung secara kasar probabilitas kematian dalam pandemi
    • Jika tingkat infeksi dan fatalitas tidak pasti
(10~30 / 100) * (0.1~1.0 / 100) * 100
  • Dapat memperkirakan tinggi gedung bertingkat tinggi
    • Jika jarak ke kaki gedung dan sudut pandang ke puncaknya tidak pasti
100 x tan(70 ~ 80)
  • Dapat memperkirakan ROI kampanye pemasaran
    • Jika jumlah tayangan, CTR, conversion rate, dan pengeluaran tidak pasti
1000000 x (2~3 / 100) x (3~5 / 100) x (10~15)

Fungsi yang didukung

  • Keypad hanya memiliki +, -, x, /, tetapi bahkan pada tahap awal alat ini mendukung lebih banyak perhitungan
  • Contoh fungsi dan operasi adalah sebagai berikut
    • 2~3 ^ 4: memangkatkan nilai antara 2 dan 3 dengan pangkat 4
    • sqrt(10~12): akar kuadrat dari nilai antara 10 dan 12
    • sin(90~95): sinus dari nilai antara 90 derajat dan 95 derajat

Keterbatasan dan cara berbagi

  • Karena ini proyek satu orang, harus siap menghadapi kerusakan
  • Parser rumusnya rapuh dan pesan error-nya tidak membantu
  • Perhitungannya cukup lambat
    • Untuk menjaga fleksibilitas, alat ini memakai metode Monte Carlo
    • Untuk setiap perhitungan yang dimasukkan, dijalankan sekitar 250 ribu evaluasi berbasis AST
  • UI-nya sangat sederhana dan tidak terlalu enak dilihat
  • Satu-satunya cara berbagi rumus adalah membuat URL secara langsung
  • range selalu berupa distribusi normal
    • Angka rendah berada 2 simpangan baku di bawah rata-rata
    • Angka tinggi berada 2 simpangan baku di atas rata-rata
    • Pendekatan yang lebih kompleks dari sudut pandang distribusi probabilitas input tidak didukung
  • Ini bukan alat untuk pakar statistik
    • Unsure Calculator bisa dipakai untuk perhitungan ala belakang serbet
    • Untuk pekerjaan yang lebih rumit diperlukan alat statistik gratis maupun berbayar, lingkungan pemrograman penuh, atau pakar statistik

Proyek dan pembaruan

  • Jika ingin ikut memperbaiki alat ini atau mendapatkan versi command line, gunakan github.com/filiph/unsure
  • Berdasarkan pembaruan 2025, notasi dan alat ini telah digunakan selama 5 tahun dan menjadi bagian penting dari workflow saat memulai proyek baru
  • Versi aplikasi notebook yang lebih baru bisa dilihat di sini
    • Kurang ramah bagi pemula, tetapi lebih membantu bagi power user
  • Jika tertarik pada proyek ini, Anda bisa mengikuti Filip Hracek atau berlangganan mailing list

1 komentar

 
GN⁺ 2025-04-16
Komentar Hacker News
  • Saya suka alat ini. Namun, sesuai tradisi HN, kalau boleh terpaku pada satu kata dalam tulisan dan membahas sesuatu yang nyaris—tapi sebenarnya sepenuhnya—menyimpang, ada setidaknya tiga titik yang bisa membuat kita menembak kaki sendiri dalam perhitungan seperti ini

    1. 95% jauh lebih lebar daripada yang biasanya orang bayangkan. Orang menganggap 95% sebagai “kira-kira ini pasti benar”, padahal sebenarnya lebih dekat ke “kalau bukan ini, saya akan cukup terkejut”. Umumnya orang menetapkan error bar di kepala mereka terlalu sempit
    2. Probabilitas jarang benar-benar independen. Ini bisa disebut pepatah “Mortgage Derivatives”. Dalam contoh keluarga, sewa rumah kemungkinan besar berkorelasi dengan biaya makan, dan jika sewanya tinggi, biaya makan juga kemungkinan besar tinggi. Ini membuat distribusinya melenceng, dan jika dimodelkan sebagai distribusi seragam tanpa bobot, Anda akan terkejut melihat betapa “langka”-nya hasil nyata terlihat
    3. Secara umum, distribusi normal lebih jarang daripada yang orang kira. Biasanya perlu ada semacam faktor pembatas pada nilai agar ia terdorong menjadi normal. Di alam, loop umpan balik negatif ada di mana-mana sehingga distribusi ini sering terlihat, tetapi begitu keluar dari taman alam raya yang relatif tertata ke kekacauan urusan manusia, distribusi normal menjadi cukup tidak normal
      Alat dan implementasinya bagus, tetapi saya sudah sering melihat orang yang baru pertama kali mengambil statistik kehilangan satu jari
    • Saya sangat setuju dengan ini, terutama poin 1. Jika orang diminta memperkirakan rentang jawaban yang mereka yakini 90%, rata-rata mereka memberikan rentang yang kira-kira setara dengan interval kepercayaan 30%
      Lebih dari 90% orang bahkan tidak mencapai interval kepercayaan 70%. Anda bisa mengujinya sendiri: https://blog.codinghorror.com/how-good-an-estimator-are-you/
    • Saya pernah mengerjakan proyek dengan para pemangku kepentingan non-teknis untuk memodelkan estimasi tanggal selesai pada Gantt chart besar. Sebagian tugas bersifat baru dan tidak realistis untuk dikuantifikasi sebagai durasi tetap, jadi para pemangku kepentingan bisnis menginginkan waktu penyelesaian tugas yang probabilistik
      Para pemangku kepentingan sangat menyukai cara menetapkan waktu tugas sebagai t_i ~ PERT(min, mode, max). Karena ini mirip dengan cara mereka berpikir, dan juga bisa menangani distribusi asimetris yang umum di dunia nyata
      Sebagai catatan, PERT hanyalah distribusi beta yang diparameterisasi ulang secara ramah pengguna dan intuitif: https://rpubs.com/Kraj86186/985700
    • Ini sejalan dengan kesan umum saya setelah membaca tulisannya. Seiring bertambahnya kompleksitas dan kesulitan bernalar tentang rentang, keyakinan saya terhadap hasil perhitungan contoh justru berkurang
      Hasil $50 itu bagus, dan jika diberi rentang plus/minus, kita secara umum bisa merasa bahwa itu berada di sekitar titik impas. Sebaliknya, ungkapan “ada probabilitas 95% saldo sebenarnya berada dalam rentang -$60 hingga +$220” menciptakan ilusi bahwa kita mendapat informasi yang lebih spesifik, padahal di setiap langkah kita hanya menambahkan komposisi ketidakpastian
      Jika kita tidak tahu apakah tiap item benar-benar 95%, atau berapa nilai minimum/maksimum yang sesungguhnya, berarti kita hanya menambahkan lebih banyak tebakan yang bisa salah. Karena itu saya juga kurang menyukai Drake equation. Setiap langkah adalah akumulasi tebakan kasar, dan saya bertanya-tanya apakah itu benar-benar menghasilkan angka yang berguna
    • Saya kurang setuju dengan pernyataan bahwa “sewa rumah kemungkinan besar sangat berkorelasi dengan biaya makan, dan jika sewanya tinggi, biaya makan juga kemungkinan besar tinggi”. Model yang mengaitkan rata-rata sewa dengan rata-rata biaya makan memang masuk akal, tetapi setelah kedua parameter itu diberikan, variasi di sekitar rata-rata bisa dimodelkan sebagai tidak berkorelasi
      Bagaimanapun, jika sudah sampai pada titik ingin mempertimbangkan hal seperti ini, Anda sebaiknya melakukan statistik Bayes yang benar
      Saya juga tidak tahu dari mana datangnya pernyataan bahwa “distribusi normal memerlukan semacam faktor pembatas yang memaksa nilai”. Yang dibutuhkan adalah galat yang tidak berkorelasi, bukan “pembatas” atau “umpan balik negatif”
    • Saya tidak pernah memikirkan statistik seperti perkakas listrik atau senjata api, tetapi analogi “orang yang baru pertama kali mengambil statistik kehilangan satu jari” benar-benar pas
  • Saya pernah membuat alat serupa
    fermi untuk command line: https://git.nunosempere.com/NunoSempere/fermi
    Kalkulator distribusi untuk Android: https://f-droid.org/en/packages/com.nunosempere.distribution...
    Anda mungkin juga tertarik pada versi yang lebih kompleks, https://www.squiggle-language.com/. Atau versi C yang lebih cepat tetapi jauh lebih verbose ini: <https://git.nunosempere.com/personal/squiggle.c>

    • Secara khusus, Fermi memiliki sintaks berikut
      5M 12M # number of people living in Chicago  
      
      beta 1 200 # fraction of people that have a piano  
      
      30 180 # minutes it takes to tune a piano, including travel time  
      
      / 48 52 # weeks a year that piano tuners work for  
      
      / 5 6 # days a week in which piano tuners work  
      
      / 6 8 # hours a day in which piano tuners work  
      
      / 60 # minutes to an hour  
      
      Perkalian diimplikasikan sebagai operasi default, dan distribusi kustomnya adalah log-normal
    • Alat lain dalam rumpun yang sama adalah <https://carlo.app/>. Ini memungkinkan perhitungan semacam ini di Google Sheets
    • Akan jadi detail yang keren jika Squiggle mendukung sintaks a~b :^)
    • Saya mencoba unsure calc dan aplikasi Android, dan sepertinya keduanya menghasilkan hasil yang berbeda
  • Keren. Jika tulisannya terasa menarik, makalah “Dissolving the Fermi Paradox” juga mungkin menarik. Makalah itu membahas lebih dalam pendekatan mengalikan fungsi kepadatan probabilitas sungguhan, alih-alih estimasi titik yang umum
    Hasilnya agak mengejutkan: bisa saja kita memang sendirian
    https://arxiv.org/abs/1806.02404

    • Jujur saja agak membuat muram, tetapi hampir semua orang di situs ini layak membacanya, setidaknya karena metodologinya
  • Saya membuat alat serupa, untuk command line[1], dan motivasinya juga mirip, tetapi sedikit lebih ambisius[2]
    Saya sangat senang melihat makin banyak orang berpikir dengan cara seperti ini. Kemampuan bernalar tentang sumber variasi tidak dilatih atau dikembangkan oleh semua orang, tetapi makin lama makin penting[3]
    [1]: https://git.sr.ht/~kqr/precel
    [2]: https://entropicthoughts.com/precel-like-excel-for-uncertain...
    [3]: https://entropicthoughts.com/statistical-literacy

  • Histogram ASCII art, atau lebih tepatnya histogram ANSI art, keren. Ini hack yang bagus untuk menyelesaikan sesuatu dengan cepat
    Kalau saya, mungkin sudah menghabiskan waktu 5 kali lebih lama mencoba berbagai library grafik lalu menyerah

    • Dalam konteks yang mirip, ilustrasi gambar tangan yang kasar juga cukup bagus. Cocok dengan tema “serbet”
    • Di sini [1] ada implementasi yang lumayan, ditulis dengan Awk. Agak kasar, tetapi kelihatannya mudah diperluas
      [1] https://github.com/stefanhengl/histogram
  • https://www.getguesstimate.com/ adalah versi yang menjadikan ini sebagai spreadsheet

  • Apakah ada cara melakukan perkalian selain perkalian skalar? Misalnya, jika ingin mengatakan “jumlah dari tiga lemparan dadu”, mengesampingkan bahwa itu bukan distribusi normal, saya ingin 1~6 * 3 = 1~6 + 1~6 + 1~6 = 6~15
    Namun yang terjadi sebenarnya adalah 1~6 * 3 = 3~18. Ini membuat perhitungan seperti “berapa lama untuk menyelesaikan 1000 tugas yang masing-masing memakan waktu 10~100?” menjadi sangat sulit

  • Akan bagus jika output bisa dikonversi kembali menjadi rentang atau distribusi Gaussian
    Catatan: jika bertanya-tanya mengapa ada nilai negatif (-5) di histogram, itu adalah kekurangan yang tak terhindarkan dari kesederhanaan Unsure Calculator. Tanpa pengetahuan tambahan, kalkulator tidak bisa tahu bahwa nilai negatif itu mustahil
    Drake equation atau persamaan yang mengalikan probabilitas juga bisa dilihat di ruang log. Ada ketidakpastian pada skala tiap probabilitas, dan probabilitas akhir adalah hasil perkalian nilai eksponensial dari probabilitas log. Dengan begitu, masalah nilai negatif seperti ini tidak muncul

    • Contoh dasar 100 / 4~6 memberi output 17~25
  • Awalnya terdengar seperti mainan, tetapi ternyata terlihat cukup berguna. Kalau tersedia sebagai aplikasi yang bisa dipakai berdampingan dengan kalkulator biasa, saya pasti akan memasangnya
    Saya tidak langsung ingat kapan persisnya saya membutuhkannya, tetapi kalau diikat ke shortcut keyboard, rasanya cukup mungkin saya akan mulai menemukan kesempatan untuk memakainya

    • Saya mencoba memasukkan angka-angka di sini, yaitu populasi × tingkat kepemilikan × frekuensi penggantian × harga satuan, untuk memperkirakan pendapatan tahunan pasar smartphone, dan hasilnya hanya berbeda beberapa poin persentase dari angka nyata yang ada di internet
      Karena ada fungsi trigonometri juga, sepertinya ini bagus untuk merekayasa balik komponen kompleks dari pengukuran sederhana. Misalnya volume bentuk, sudut tepi, dan luas penampang
      Akan bagus jika mendukung distribusi multimodal, tetapi itu tidak wajib. Fungsi trigonometri invers juga menarik, tetapi rumit dan tidak wajib
      Bagaimanapun, alat ini lebih praktis daripada membuka Python setiap kali ingin memperkirakan rentang jawaban
    • Jika membutuhkan aplikasi, https://f-droid.org/en/packages/com.nunosempere.distribution... layak dipertimbangkan
    • Karena bahasa utamanya Dart, sepertinya membuat aplikasi Flutter dari sini akan mudah
  • Permintaan fitur: akan bagus jika bisa menentukan distribusi probabilitas. Misalnya ~ untuk distribusi normal, _ untuk distribusi uniform, dan semacamnya

    • Menurut saya, hal seperti ini sebaiknya berupa fungsi. Misalnya distribusi Gaussian dengan µ=50, σ=1 ditulis G(50, 1), distribusi eksponensial negatif dengan λ=3 ditulis N(3), distribusi uniform antara 0 dan 1 ditulis U(0, 1), distribusi bilangan bulat uniform dari 1 sampai 6 ditulis UI(1, 6), dan semacamnya
      Jauh lebih fleksibel dan tampaknya lebih mudah diingat
    • Ketiadaan fitur ini sendiri adalah fiturnya. Tulisannya juga mengatakan begitu