diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/lstbayes/examples.tex |
Initial commit
Diffstat (limited to 'macros/latex/contrib/lstbayes/examples.tex')
-rw-r--r-- | macros/latex/contrib/lstbayes/examples.tex | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/macros/latex/contrib/lstbayes/examples.tex b/macros/latex/contrib/lstbayes/examples.tex new file mode 100644 index 0000000000..9ff02ab83d --- /dev/null +++ b/macros/latex/contrib/lstbayes/examples.tex @@ -0,0 +1,128 @@ +\documentclass{article} + +\title{Examples for the \textsf{lstbayes} package} +\author{Jeffrey B. Arnold} + +\usepackage{lstbayes} +\usepackage{hyperref} + +\begin{document} + +\maketitle{} + +Some example programs typset using the \textsf{listings} language drivers provideb by the \textsf{lstbayes} package. + +\section{BUGS} + +The Rats model from the OpenBUGS Examples Volume I: \url{http://www.openbugs.net/Examples/Rats.html}. +\begin{lstlisting}[language=BUGS] +model { + for( i in 1 : N ) { + for( j in 1 : T ) { + Y[i , j] ~ dnorm(mu[i , j],tau.c) + mu[i , j] <- alpha[i] + beta[i] * (x[j] - xbar) + culmative.Y[i , j] <- culmative(Y[i , j], Y[i , j]) + post.pv.Y[i , j] <- post.p.value(Y[i , j]) + prior.pv.Y[i , j] <- prior.p.value(Y[i , j]) + replicate.post.Y[i , j] <- replicate.post(Y[i , j]) + pv.post.Y[i , j] <- step(Y[i , j] - replicate.post.Y[i , j]) + replicate.prior.Y[i , j] <- replicate.prior(Y[i , j]) + pv.prior.Y[i , j] <- step(Y[i , j] - replicate.prior.Y[i , j]) + } + alpha[i] ~ dnorm(alpha.c,alpha.tau) + beta[i] ~ dnorm(beta.c,beta.tau) + } + tau.c ~ dgamma(0.001,0.001) + sigma <- 1 / sqrt(tau.c) + alpha.c ~ dnorm(0.0,1.0E-6) + alpha.tau ~ dgamma(0.001,0.001) + beta.c ~ dnorm(0.0,1.0E-6) + beta.tau ~ dgamma(0.001,0.001) + alpha0 <- alpha.c - xbar * beta.c +} +\end{lstlisting} + + +\section{JAGS} + +Linear regression example from John Myles White, \url{http://www.johnmyleswhite.com/notebook/2010/08/20/using-jags-in-r-with-the-rjags-package/}. + +\begin{lstlisting}[language=JAGS] +model { + for (i in 1:N){ + y[i] ~ dnorm(y.hat[i], tau) + y.hat[i] <- a + b * x[i] + } + a ~ dnorm(0, .0001) + b ~ dnorm(0, .0001) + tau <- pow(sigma, -2) + sigma ~ dunif(0, 100) +} +\end{lstlisting} + + +\section{Stan} + +Rats example from \url{https://github.com/stan-dev/example-models/blob/master/bugs_examples/vol1/rats/rats_vec.stan}. + +\begin{lstlisting}[language=Stan] +// http://www.mrc-bsu.cam.ac.uk/bugs/winbugs/Vol1.pdf +// Page 3: Rats +data { + int<lower=0> N; + int<lower=0> T; + real x[T]; + real y[N,T]; + real xbar; +} +transformed data { + real x_minus_xbar[T]; + real y_linear[N*T]; + + for (t in 1:T) + x_minus_xbar[t] <- x[t] - xbar; + + for (n in 1:N) + for (t in 1:T) + y_linear[(n-1)*T + t] <- y[n, t]; +} +parameters { + real alpha[N]; + real beta[N]; + + real mu_alpha; + real mu_beta; + + real<lower=0> sigmasq_y; + real<lower=0> sigmasq_alpha; + real<lower=0> sigmasq_beta; +} +transformed parameters { + real<lower=0> sigma_y; + real<lower=0> sigma_alpha; + real<lower=0> sigma_beta; + + sigma_y <- sqrt(sigmasq_y); + sigma_alpha <- sqrt(sigmasq_alpha); + sigma_beta <- sqrt(sigmasq_beta); +} +model { + real pred[N*T]; + + for (n in 1:N) + for (t in 1:T) + pred[(n-1)*T + t] <- fma(beta[n], x_minus_xbar[t], alpha[n]); + + mu_alpha ~ normal(0, 100); + mu_beta ~ normal(0, 100); + sigmasq_y ~ inv_gamma(0.001, 0.001); + sigmasq_alpha ~ inv_gamma(0.001, 0.001); + sigmasq_beta ~ inv_gamma(0.001, 0.001); + alpha ~ normal(mu_alpha, sigma_alpha); // vectorized + beta ~ normal(mu_beta, sigma_beta); // vectorized + + y_linear ~ normal(pred, sigma_y); // vectorized +} +\end{lstlisting} + +\end{document} |