Bayesian model predictions I am using an exponential decay model for the prediction of chemical exposures. y[i] is measured exposure, and y_new[i] is a prediction for x_new. I expect that new predictions will have exponential decay.
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 )
}

However, some predictions are negative numbers. How is that possible? Shouldn't all predictions for exponential decay be positive? How to explain negative values, if in reality, they are not possible.
I appreciate any help.
 A: Your predictions are modeled to have normal error ie $y_{new} \sim N(\mu, \tau)$ where $\mu=\beta_0 * \exp{(\beta_1 * x_{new})}$ so for $\mu$ small this can easily result in negative values for $y_{new}$.
A: There are several possible points of error here in your code.  I don't code in JAGS, so I cannot say for sure.
First, do not use dnorm, use dlnorm.  Your data appears to be of the form $log(y)\sim\mathcal{N}(\beta_0+\beta_1x,\tau),$ where $\tau$ is the precision matrix.  It doesn't seem that you need to define it as $\tau=1/\sigma/\sigma$ unless that is a language requirement.  However, since dlnorm will be defined with respect to the variance, I would just leave $\tau$ out and use $\sigma^2$ directly.
The use of the precision matrix instead of the covariance matrix has to do with it having nice properties if you are assuming a conjugate prior.  But you are not doing that, so it isn't necessary.  It may not be helpful either.
Your code looks like your prediction variable is being defined incorrectly, but I cannot say that for sure because I do not use that library.  A Bayesian predictive distribution, where $\tilde{x}=X_{future}$ is the predicted value and $x=X_{observed}$ is data is $$\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,$$ where $\mathcal{L}$ is your likelihood function.  In your case, your likelihood function is your regression.
What you are doing in a prediction is finding the entire distribution of all possible future values. I don't think that is what your code is doing.  You should look in the documentation and on the web for examples.
A prediction should average over all possible explanations and then factor them out.
Consider the following binomial distribution of three observations and two possible parameters.  $\theta\in\{.25,.80\}.$  You observed $x\in\{0,1,1\}$, where $1$ is a success.  The prior is $\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\%$$
The prediction for the next two coin tosses is: $$\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\%}$$
You are adding your model over the mass function (in this case) or your density function (in your case).  You are averaging the future values over the uncertainty of the parameters.  I don't think that is what your code does.
