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.

Jon
fonte
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.

Tom Minka
fonte