¿Qué es la programación probabilística?

10

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 PyMC3y Stanse 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 randuna 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).

- Programación probabilística

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.

Jon
fuente
1
Estoy de acuerdo con la primera definición: PP te hace definir un modelo estadístico y maneja la parte de simulación por sí solo. Ejemplos además de Stan son BUGS, Church, Anglican. R no es un PP.
Xi'an
@ Xi'an, ¿diría que PP parece centrarse principalmente en el modelado estadístico bayesiano? Si es así, ¿se pretende que PP solo respalde un enfoque bayesiano?
Jon
La atención se centra en el "modelado jerárquico". Esto es inherentemente conveniente para los métodos bayesianos. Aunque también hay una interpretación frecuentista menos natural.
knrumsey

Respuestas:

2

La programación probabilística es una técnica para definir un modelo estadístico. A diferencia de definir un modelo por su función de distribución de probabilidad, o dibujar un gráfico, usted expresa el modelo en un lenguaje de programación, típicamente como un muestreador directo.

La inferencia automática de una especificación de modelo es una característica típica de las herramientas de programación probabilística, pero no es esencial y no es necesario que sea bayesiana. Hay una variedad de cosas útiles que puede hacer con un modelo especificado como un programa probabilístico. Por ejemplo, el documento Derivando las funciones de densidad de probabilidad de los programas funcionales probabilísticos describe una herramienta que analiza un programa probabilístico y calcula su función de distribución de probabilidad. El artículo Detección de simetrías de parámetros en modelos probabilísticos analiza un programa probabilístico de simetrías de parámetros. Este tipo de trabajo también se incluye en la programación probabilística.

Tom Minka
fuente