Prior distributions
normal(location = 0, scale, k = 1)
lkj(eta)
Stan Development Team. Stan Functions Reference Version 2.27. https://mc-stan.org/docs/2_27/functions-reference/lkj-correlation.html
Location parameter (numeric)
Scale parameter (positive numeric)
Optional; number of groups for which priors are needed. This is a shortcut to avoid using the rep
function to repeat the same prior for each group, as in: normal(location = rep(0, times = 3), scale = rep(1, times = 3)
. To provide distinct priors for each group, simply specify them individually, as in normal(location = c(-5, -6, -8), scale = c(2, 2, 2))
.
The shape parameter for the LKJ prior
An object of class prior
which will be used internally by surveil to set parameters of prior distributions.
The prior distribution functions are used to set the values of prior parameters.
Users can control the values of the parameters, but the distribution (model) itself is fixed. The first log-rate (eta[t]
, t=1
) and the scale parameters (sigma) are assigned Gaussian (normal
) prior distribution. (The scale parameter, sigma, is constrained to be positive, making it a half-normal prior.) For correlated time series, the correlation matrix is assigned the LKJ prior.
For details on how any distribution is parameterized, see the Stan Language Functions Reference document: https://mc-stan.org/users/documentation/.
The LKJ prior for correlation matrix has a single parameter, eta (eta > 0). If eta=1
, then you are placing a uniform prior on any K-by-K correlation matrix. For eta > 1, there is a higher probability on the identity matrix, such that as eta increases beyond 1, you are expressing greater skepticism towards large correlations. If 0 < eta < 1, then you will be expressing skepticism towards correlations of zero and favoring non-zero correlations. See Stan documentation: https://mc-stan.org/docs/2_27/functions-reference/lkj-correlation.html.
# note there are three groups in the data, each requires a prior
prior <- list()
prior$eta_1 <- normal(location = -6, scale = 4, k = 3)
## by default, location = 0
prior$sigma <- normal(scale = 1, k = 3)
prior$omega <- lkj(2)
# \donttest{
dfw <- msa[grep("Dallas", msa$MSA), ]
fit <- stan_rw(dfw, time = Year, group = Race, prior = prior,
chains = 2, iter = 900) # for speed only
plot(fit)
# }