Durante el año pasado, he estado escuchando mucho sobre los marcos de programación probabilística (PP) como PyMC3 y Stan , y qué tan bueno es el PP. Y hoy, alguien compartió este enlace conmigo: Pyro: un lenguaje de programación probabilístico profundo
Sin embargo, realmente no sigo lo que tiene de especial, ya que parece que todo lo que puede hacer en PP puede hacerlo en cualquier otro lenguaje de propósito general. Estoy seguro de que hay aspectos técnicos sobre PP que lo hacen atractivo (por ejemplo, computación paralela), pero aparte de esto, ¿es PP realmente diferente de cualquier otro lenguaje?
Pregunta: Me preguntaba si había un consenso sobre qué era PP y cómo difiere de otro software centrado en estadísticas como R, Matlab, Mathematica. Cabe señalar que PyMC3
y Stan
se centran en más análisis bayesiano.
Investigando un poco en Google, me encontré con las siguientes dos definiciones. El primero más abstracto y el segundo más sobre las características técnicas de PP.
1.2. La programación probabilística es
En cambio, la programación probabilística es una herramienta para el modelado estadístico. La idea es tomar lecciones del mundo de los lenguajes de programación y aplicarlas a los problemas de diseño y uso de modelos estadísticos. Los expertos ya construyen modelos estadísticos, a mano, en notación matemática en papel, pero es un proceso exclusivo para expertos que es difícil de soportar con razonamiento mecánico. La idea clave en PP es que el modelado estadístico puede, cuando lo hace lo suficiente, comenzar a parecerse mucho a la programación. Si damos el salto y realmente utilizamos un lenguaje real para nuestro modelado, muchas nuevas herramientas se vuelven factibles. Podemos comenzar a automatizar las tareas que solían justificar la escritura de un documento para cada instancia.
Aquí hay una segunda definición : un lenguaje de programación probabilístico es un lenguaje de programación ordinario con
rand
una gran cantidad de herramientas relacionadas que lo ayudan a comprender el comportamiento estadístico del programa.Ambas definiciones son precisas. Simplemente enfatizan diferentes ángulos en la misma idea central. Cuál tiene sentido para usted dependerá de para qué quiera usar PP. Pero no se distraiga por el hecho de que los programas PPL se parecen mucho a las implementaciones de software ordinarias, donde el objetivo es ejecutar el programa y obtener algún tipo de salida. El objetivo en PP es el análisis, no la ejecución (énfasis agregado).
Me gustaría saber si la comunidad estadística general está de acuerdo con estas dos definiciones de PP, y si hay otras características, esta definición puede faltar.