O que é programação probabilística?


10

No ano passado, tenho ouvido muito sobre estruturas de Programação Probabilística (PP), como PyMC3 e Stan , e quão bom é o PP. E hoje, alguém compartilhou este link comigo: Pyro: uma linguagem de programação probabilística profunda

No entanto, eu realmente não sigo o que há de especial, pois parece que tudo o que você pode fazer no PP pode fazer em qualquer outra linguagem de uso geral. Tenho certeza de que existem aspectos técnicos sobre o PP que o tornam atraente (por exemplo, computação paralela), mas, além disso, o PP é realmente diferente de qualquer outra linguagem?

Pergunta: Eu queria saber se havia um consenso sobre o que era PP e como ele difere de outros softwares estatísticos, como R, Matlab, Mathematica. Deve-se notar que PyMC3e Stanestão focados em mais análises bayesianas.

Fazendo uma pequena pesquisa no Google, me deparei com as duas definições a seguir. O primeiro mais abstrato e o segundo mais sobre as características técnicas da PP.

1.2 A programação probabilística é

Em vez disso, a programação probabilística é uma ferramenta para modelagem estatística. A idéia é pegar emprestadas lições do mundo das linguagens de programação e aplicá-las aos problemas de projetar e usar modelos estatísticos. Os especialistas já constroem modelos estatísticos - manualmente, em notação matemática no papel -, mas é um processo somente para especialistas, difícil de suportar com o raciocínio mecânico. O principal insight do PP é que a modelagem estatística pode, quando você faz o suficiente, começar a parecer muito com programação. Se dermos o salto e realmente usarmos uma linguagem real para nossa modelagem, muitas novas ferramentas se tornarão viáveis. Podemos começar a automatizar as tarefas usadas para justificar a redação de um artigo para cada instância.

Aqui está uma segunda definição : uma linguagem de programação probabilística é uma linguagem de programação comum rande uma grande pilha de ferramentas relacionadas que ajudam a entender o comportamento estatístico do programa.

Ambas as definições são precisas. Eles apenas enfatizam ângulos diferentes na mesma idéia central. Qual deles faz sentido para você depende do que você deseja usar o PP. Mas não se distraia com o fato de os programas PPL parecerem muito com implementações comuns de software, onde o objetivo é executar o programa e obter algum tipo de saída. O objetivo no PP é análise, não execução (ênfase adicionada).

- Programação Probabilística

Gostaria de saber se a comunidade estatística geral concorda com essas duas definições de PP e se existem outras características que possam estar ausentes.


1
Concordo com a primeira definição: o PP faz com que você defina um modelo estatístico e lide com a parte da simulação por conta própria. Exemplos além de Stan são BUGS, Church, Anglican. R não é um PP.
Xian

@ Xi'an, você diria que o PP parece se concentrar principalmente na modelagem estatística bayesiana? Em caso afirmativo, o PP deve apoiar apenas uma abordagem bayesiana?
Jon Jon

O foco está na "modelagem hierárquica". Isso é inerentemente conveniente para métodos bayesianos. Embora exista também uma interpretação freqüentista menos natural.
knrumsey

Respostas:


2

A Programação Probabilística é uma técnica para definir um modelo estatístico. Ao contrário de definir um modelo por sua função de distribuição de probabilidade ou desenhar um gráfico, você expressa o modelo em uma linguagem de programação, normalmente como um amostrador direto.

A inferência automática de uma especificação de modelo é um recurso típico das ferramentas de programação probabilística, mas não é essencial e não é necessário que seja bayesiano. Há várias coisas úteis que você pode fazer com um modelo especificado como um programa probabilístico. Por exemplo, o artigo Funções Derivadas de Densidade de Probabilidade de Programas Funcionais Probabilísticos descreve uma ferramenta que analisa um programa probabilístico e elabora sua função de distribuição de probabilidade. O artigo Detectando simetrias de parâmetros em modelos probabilísticos analisa um programa probabilístico de simetrias de parâmetros. Esse tipo de trabalho também se enquadra na programação probabilística.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.