M∈{Normal,Log-normal}X={x1,...,xN}
P(M∣X)∝P(X∣M)P(M).
A parte difícil é obter a probabilidade marginal ,
P(X∣M)=∫P(X∣θ,M)P(θ∣M)dθ.
p(θ∣M)XY={logx1,...,logxNYX,
P(X∣M=Log-Normal)=P(Y∣M=Normal)⋅∏i∣∣∣1xi∣∣∣.
P(θ∣M)P(σ2,μ∣M=Normal)P(M)
Exemplo:
P(μ,σ2∣M=Normal)m0=0,v0=20,a0=1,b0=100
Segundo Murphy (2007) (Equação 203), a probabilidade marginal da distribuição normal é então dada por
P(X∣M=Normal)=|vN|12|v0|12ba00baNnΓ(aN)Γ(a0)1πN/22N
aN,bN,vNP(μ,σ2∣X,M=Normal)
vNmNaNbN=1/(v−10+N),=(v−10m0+∑ixi)/vN,=a0+N2,=b0+12(v−10m20−v−1Nm2N+∑ix2i).
Eu uso os mesmos hiperparâmetros para a distribuição log-normal,
P(X∣M=Log-normal)=P({logx1,...,logxN}∣M= Normal ) ⋅ ∏Eu∣∣∣1xEu∣∣∣.
Para uma probabilidade anterior do log-normal de 0,1, P( M= Log-normal ) = 0,1e dados extraídos da seguinte distribuição log-normal,
o posterior se comporta assim:
A linha sólida mostra a probabilidade mediana posterior para diferentes desenhos de NOs pontos de dados. Observe que, para pouco ou nenhum dado, as crenças estão próximas das crenças anteriores. Para cerca de 250 pontos de dados, o algoritmo quase sempre tem certeza de que os dados foram extraídos de uma distribuição log-normal.
Ao implementar as equações, seria uma boa ideia trabalhar com densidades de log em vez de densidades. Mas, caso contrário, deve ser bem direto. Aqui está o código que eu usei para gerar os gráficos:
https://gist.github.com/lucastheis/6094631