1 votos

Predicciones del modelo bayesiano

Estoy utilizando un modelo de decaimiento exponencial para la predicción de exposiciones químicas. y[i] es la exposición medida, e y_new[i] es una predicción para x_new. Espero que las nuevas predicciones tengan un decaimiento exponencial.

model
{
for( i in 1 : Ndata ) {
    y[i] ~ dnorm( beta0*exp(beta1*x[i]) , tau )
    y_new[i] ~ dnorm( beta0*exp(beta1*x_new[i]) , tau )
}
beta0 ~ dunif( 0 , 200000)
beta1 ~ dunif(-1.0E+4,0)
tau <-1/(sigma*sigma)
sigma ~ dunif( 1.0E-4 , 1.0E+4 )
}

Sin embargo, algunas predicciones son números negativos. ¿Cómo es posible? ¿No deberían ser positivas todas las predicciones del decaimiento exponencial? ¿Cómo se explican los valores negativos, si en realidad no son posibles?

Agradezco cualquier ayuda.

2voto

bdeonovic Puntos 2807

Sus predicciones se modelan para tener un error normal, es decir $y_{new} \sim N(\mu, \tau)$ donde $\mu=\beta_0 * \exp{(\beta_1 * x_{new})}$ por lo que para $\mu$ pequeño esto puede dar lugar fácilmente a valores negativos para $y_{new}$ .

1voto

Jay Querido Puntos 589

Aquí hay varios posibles puntos de error en tu código. No codifico en JAGS, así que no puedo asegurarlo.

En primer lugar, no utilice dnorm, utilice dlnorm. Sus datos parecen ser de la forma $log(y)\sim\mathcal{N}(\beta_0+\beta_1x,\tau),$ donde $\tau$ es la matriz de precisión. No parece que sea necesario definirla como $\tau=1/\sigma/\sigma$ a menos que sea un requisito lingüístico. Sin embargo, dado que dlnorm se definirá con respecto a la varianza, yo dejaría simplemente $\tau$ y utilizar $\sigma^2$ directamente.

El uso de la matriz de precisión en lugar de la matriz de covarianza tiene que ver con que tiene propiedades agradables si se asume una prior conjugada. Pero usted no está haciendo eso, por lo que no es necesario. Puede que tampoco sea útil.

Tu código parece que la variable de predicción está mal definida, pero no puedo asegurarlo porque no uso esa librería. Una distribución predictiva bayesiana, donde $\tilde{x}=X_{future}$ es el valor previsto y $x=X_{observed}$ son datos son $$\Pr(\tilde{x}|x)=\int\int\int\mathcal{L}(\tilde{x}|\beta_0,\beta_1,\tau)\Pr(\beta_0,\beta_1,\tau|x)\mathrm{d}\beta_0\mathrm{d}\beta_1\mathrm{d}\tau,$$ donde $\mathcal{L}$ es su función de probabilidad. En tu caso, tu función de probabilidad es tu regresión.

Lo que estás haciendo en una predicción es encontrar la distribución completa de todos los posibles valores futuros. No creo que eso es lo que tu código está haciendo. Deberías buscar ejemplos en la documentación y en la web.

Una predicción debe calcular el promedio de todas las explicaciones posibles y luego factorizarlas.

Considere la siguiente distribución binomial de tres observaciones y dos parámetros posibles. $\theta\in\{.25,.80\}.$ Usted observó $x\in\{0,1,1\}$ donde $1$ es un éxito. El prior es $\Pr(\theta=.25)=.9$ .

$$\Pr(\theta=.25|x\in\{0,1,1\})=\frac{.25^2\times{.75}^1\times.9}{.25^2\times{.75}^1\times.9+.8^2\times{.2}^1\times{.1}}\approx{}76.7\%$$

La predicción para los próximos dos lanzamientos de moneda es: $$\Pr(k=0|n=2;x\in\{0,1,1\})=(.767\times{.25^0}\times{.75^2}+.233\times{.8^0}\times{.2}^2)\binom{2}{0}\approx{44\%}$$ $$\Pr(k=1|n=2;x\in\{0,1,1\})=(.767\times{.25^1}\times{.75^1}+.233\times{.8^1}\times{.2}^1)\binom{2}{1}\approx{36\%}$$ $$\Pr(k=2|n=2;x\in\{0,1,1\})=(.767\times{.25^2}\times{.75^0}+.233\times{.8^2}\times{.2}^0)\binom{2}{2}\approx{20\%}$$

Estás sumando tu modelo sobre la función de masa (en este caso) o tu función de densidad (en tu caso). Estás promediando los valores futuros sobre la incertidumbre de los parámetros. No creo que eso sea lo que hace tu código.

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