5 votos

Transformar registro posteriores a la original posteriores

Utilizando una de dos etapas RJMCMC proceso de obtener un vector de registro posteriores relativos a cada modelo. Mi objetivo es convertir estos probabilidades después de normalización (para utilizar en la segunda etapa de la RJMCMC proceso).

El problema es el registro de posteriores son grandes (ex. 1100). Para convertir a las probabilidades (no en la escala logarítmica) que me gustaría hacer:

exp(log.post)/sum(exp(log.post))

Sin embargo, esto no es posible debido a los grandes valores del registro posterior. Sugerencias sobre ¿cómo puedo convertir?

Me gustaría que las probabilidades en la escala original, no en la escala logarítmica.

5voto

alexei.vidmich Puntos 320

Considere la posibilidad de la expresión:

$$\frac{exp(A)}{exp(A)+exp(B)}$$

La estrategia genérica para el cálculo de la expresión anterior al $exp(A)$ desbordamientos sería la transformación de la siguiente manera:

$$\frac{1}{1+exp(B-A)}$$

Por ejemplo: R ahoga en:

$$\frac{exp(1100)}{exp(1100)+exp(1104)}$$

Pero, felizmente calcula de la siguiente transformación para producir un valor de 0.01798621:

$$\frac{1}{1+exp(1104-1100)}$$

Usted todavía puede experimentar problemas de desbordamiento o subdesbordamiento cuando se compute $exp(B-A)$, pero que no debería solitario plantear un problema como la expresión transformada todavía estará bien definido.

0voto

Lev Puntos 2212

En el caso general, el uso de $$ \dfrac{ \exp\{A_i-\max_j(A_j)\} }{ \sum_k \exp\{A_k-\max_j(A_j)\} } $$ para evitar desbordamientos. Yo siempre uso este enfoque en el cómputo de factores de Bayes y las probabilidades.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X