Atualização bayesiana com novos dados

17

Como calcular o posterior com um N ~ (a, b) anterior após observar n pontos de dados? Suponho que tenhamos que calcular a média e a variação da amostra dos pontos de dados e fazer algum tipo de cálculo que combine o posterior com o anterior, mas não tenho muita certeza de como é a fórmula da combinação.

estudante
fonte

Respostas:

22

A idéia básica da atualização bayesiana é que, dados alguns dados X e o parâmetro de interesse anterior acima θ , onde a relação entre dados e parâmetro é descrita usando a função de verossimilhança , use o teorema de Bayes para obter posterior

p(θX)p(Xθ)p(θ)

Isso pode ser feito sequencialmente, onde, depois de ver o primeiro ponto de dados x1 antes de θ ser atualizado para posterior θ , em seguida, você pode pegar o segundo ponto de dados x2 e usar posterior obtido antes de θ como seu anterior , para atualizá-lo novamente etc.

Deixe-me lhe dar um exemplo. Imagine que você deseja estimar médio μda distribuição normal e σ2 é conhecido por você. Nesse caso, podemos usar o modelo normal-normal. Assumimos normal antes para μ com hiperparâmetros μ0,σ02:

XμNormal(μ, σ2)μNormal(μ0, σ02)

Como a distribuição normal é um conjugado anterior para da distribuição normal, temos uma solução de forma fechada para atualizar o anteriorμ

E(μx)=σ2μ+σ02xσ2+σ02Var(μx)=σ2σ02σ2+σ02

Infelizmente, essas soluções simples de formulário fechado não estão disponíveis para problemas mais sofisticados e você precisa confiar em algoritmos de otimização (para estimativas pontuais usando a abordagem máxima a posteriori ) ou em simulação MCMC.

Abaixo você pode ver um exemplo de dados:

n <- 1000
set.seed(123)
x     <- rnorm(n, 1.4, 2.7)
mu    <- numeric(n)
sigma <- numeric(n)

mu[1]    <- (10000*x[i] + (2.7^2)*0)/(10000+2.7^2)
sigma[1] <- (10000*2.7^2)/(10000+2.7^2)
for (i in 2:n) {
  mu[i]    <- ( sigma[i-1]*x[i] + (2.7^2)*mu[i-1] )/(sigma[i-1]+2.7^2)
  sigma[i] <- ( sigma[i-1]*2.7^2                  )/(sigma[i-1]+2.7^2)
}

Se você plotar os resultados, verá como a abordagem posterior se aproxima do valor estimado (seu valor verdadeiro é marcado pela linha vermelha) à medida que novos dados são acumulados.

Atualização anterior nas etapas subsequentes no modelo normal-normal

Para saber mais, você pode conferir os slides e a análise bayesiana conjugada do artigo de distribuição gaussiano de Kevin P. Murphy. Verifique também Os priores Bayesianos se tornam irrelevantes com um grande tamanho de amostra? Você também pode verificar essas notas e esta entrada do blog para obter uma introdução passo a passo acessível à inferência bayesiana.

Tim
fonte
Obrigado, isso é muito útil. Como resolveríamos esse exemplo simples (variação desconhecida, diferente do seu exemplo)? Suponha que temos uma distribuição anterior de N ~ (5, 4) e depois observamos 5 pontos de dados (8, 9, 10, 8, 7). Qual seria o posterior após essas observações? Agradeço antecipadamente. Muito apreciado.
statstudent 27/09/16
@Kelly, você pode encontrar exemplos de casos em que a variação é desconhecida e a média conhecida, ou ambas são desconhecidas na entrada da Wikipedia sobre antecedentes conjugados e nos links que forneci no final da minha resposta. Se a média e a variação são desconhecidas, torna-se um pouco mais complicado.
Tim
@ Kelly btw, você pode conferir aqui, por exemplo, a estimativa de e σ 2 . μσ2
Tim
4

Se você possui um e uma função de probabilidade P ( x θ ), pode calcular o posterior com:P(θ)P(xθ)

P(θx)=θP(xθ)P(θ)P(x)

Desde é apenas uma constante de normalização para somar probabilidades a um, você pode escrever:P(x)

P(θx)θP(xθ)P(θ)

Onde significa "é proporcional a".

O caso dos anteriores conjugados (onde você costuma obter boas fórmulas fechadas)

θP(θ)P(xθ)P(θ) P(θx) estiverem na mesma família (por exemplo, ambos gaussianos).

A tabela de distribuições conjugadas pode ajudar a criar alguma intuição (e também fornecer alguns exemplos instrutivos para você trabalhar).

Matthew Gunn
fonte
1

Esse é o problema central da computação para a análise de dados bayesianos. Realmente depende dos dados e distribuições envolvidos. Para casos simples em que tudo pode ser expresso em forma fechada (por exemplo, com anteriores conjugados), você pode usar o teorema de Bayes diretamente. A família de técnicas mais popular para casos mais complexos é a cadeia de Markov Monte Carlo. Para detalhes, consulte qualquer livro introdutório sobre análise de dados bayesiana.

Kodiologist
fonte
Muito obrigado! Desculpe se esta é uma pergunta de acompanhamento realmente estúpida, mas nos casos simples que você mencionou, como exatamente usaríamos o teorema de Bayes diretamente? A distribuição criada pela amostra média e variação dos pontos de dados se tornaria a função de probabilidade? Muito obrigado.
statstudent
@ Kelly Novamente, isso depende da distribuição. Veja, por exemplo, en.wikipedia.org/wiki/Conjugate_prior#Example . (Se eu respondi a sua pergunta, não se esqueça de aceitar a minha resposta, clicando sobre a marca de verificação sob as setas de voto.)
Kodiologist