---
title: "Using priorsense with JAGS"
vignette: >
  %\VignetteIndexEntry{Using priorsense with JAGS}
  %\VignetteEngine{quarto::html}
  %\VignetteEncoding{UTF-8}
---


```{r}
#| include: false
ggplot2::theme_set(bayesplot::theme_default(base_family = "sans"))

options(priorsense.plot_help_text = FALSE)
```


```{r}
#| message: false
#| warning: false
library(R2jags)
library(posterior)
library(priorsense)
```

To use `priorsense` with a JAGS model, the log prior and log likelihood
evaluations should be added to the model code.

```{r}
model_string <- "
model {
  for(n in 1:N) {
    y[n] ~ dnorm(mu, tau)
    log_lik[n] <- likelihood_alpha * logdensity.norm(y[n], mu, tau)
  }
  mu ~ dnorm(0, 1)
  sigma ~ dnorm(0, 1 / 2.5^2) T(0,)
  tau <- 1 / sigma^2
  lprior <- prior_alpha * logdensity.norm(mu, 0, 1) + logdensity.norm(sigma, 0, 1 / 2.5^2)
}
"
```

Using `R2jags::jags()` to fit the model.

```{r}
#| message: false
#| warning: false
model_con <- textConnection(model_string)
data <- example_powerscale_model()$data

set.seed(123)

# monitor parameters of interest along with log-likelihood and log-prior
variables <- c("mu", "sigma", "log_lik", "lprior")

jags_fit <- jags(
  data,
  model.file = model_con,
  parameters.to.save = variables,
  n.chains = 4,
  DIC = FALSE,
  quiet = TRUE,
  progress.bar = "none"
  )
```

Then the `priorsense` functions will work as usual.

```{r}
powerscale_sensitivity(jags_fit)
```

```{r}
#| message: false
#| warning: false
#| fig-width: 6
#| fig-height: 4
powerscale_plot_dens(jags_fit)
```
