Selama setahun terakhir, saya telah banyak mendengar tentang kerangka kerja Programming Probabilistic (PP) seperti PyMC3 dan Stan , dan betapa hebatnya PP. Dan hari ini, seseorang membagikan tautan ini kepada saya: Pyro: Bahasa Pemrograman Probabilitas Jauh
Namun, saya tidak benar-benar mengikuti apa yang istimewa tentang itu karena rasanya seperti apa pun yang dapat Anda lakukan dalam PP yang dapat Anda lakukan dalam bahasa tujuan umum lainnya. Saya yakin ada aspek teknis tentang PP yang membuatnya menarik (mis. Komputasi paralel), tetapi selain itu, apakah PP benar-benar berbeda dari bahasa lain?
Pertanyaan: Saya bertanya-tanya apakah ada konsensus tentang apa itu PP dan bagaimana perbedaannya dari perangkat lunak yang berfokus pada statistik lainnya seperti R, Matlab, Mathematica. Perlu dicatat bahwa PyMC3
dan Stan
lebih difokuskan pada analisis Bayesian.
Melakukan sedikit riset di Google, saya menemukan dua definisi berikut. Yang pertama lebih abstrak, dan yang kedua tentang karakteristik teknis PP.
1.2. Pemrograman Probabilistik Adalah
Sebaliknya, pemrograman probabilistik adalah alat untuk pemodelan statistik. Idenya adalah untuk meminjam pelajaran dari dunia bahasa pemrograman dan menerapkannya pada masalah merancang dan menggunakan model statistik. Para ahli sudah membangun model statistik — dengan tangan, dalam notasi matematis di atas kertas — tetapi ini adalah proses khusus pakar yang sulit didukung dengan penalaran mekanis. Wawasan utama dalam PP adalah bahwa pemodelan statistik dapat, ketika Anda melakukannya dengan cukup, mulai terasa seperti pemrograman. Jika kita membuat lompatan dan benar-benar menggunakan bahasa nyata untuk pemodelan kita, banyak alat baru menjadi layak. Kita dapat mulai mengotomatiskan tugas-tugas yang digunakan untuk membenarkan penulisan makalah untuk setiap contoh.
Berikut definisi kedua : bahasa pemrograman probabilistik adalah bahasa pemrograman biasa dengan
rand
dan banyak sekali alat terkait yang membantu Anda memahami perilaku statistik program.Kedua definisi ini akurat. Mereka hanya menekankan sudut berbeda pada ide inti yang sama. Mana yang masuk akal bagi Anda akan tergantung pada apa yang ingin Anda gunakan untuk PP. Tapi jangan terganggu oleh kenyataan bahwa program PPL sangat mirip dengan implementasi perangkat lunak biasa, di mana tujuannya adalah untuk menjalankan program dan mendapatkan semacam output. Tujuan dalam PP adalah analisis, bukan eksekusi (penekanan ditambahkan).
Saya ingin tahu apakah komunitas statistik umum setuju dengan dua definisi PP ini, dan jika ada karakteristik lain definisi ini mungkin hilang.