priors {surveil} | R Documentation |
Prior distributions
Description
Prior distributions
Usage
normal(location = 0, scale, k = 1)
lkj(eta)
Arguments
location |
Location parameter (numeric) |
scale |
Scale parameter (positive numeric) |
k |
Optional; number of groups for which priors are needed. This is a shortcut to avoid using the |
eta |
The shape parameter for the LKJ prior |
Details
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.
Parameterizations
For details on how any distribution is parameterized, see the Stan Language Functions Reference document: https://mc-stan.org/users/documentation/.
LKJ prior
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.
Value
An object of class prior
which will be used internally by surveil to set parameters of prior distributions.
Source
Stan Development Team. Stan Functions Reference Version 2.27. https://mc-stan.org/docs/2_27/functions-reference/lkj-correlation.html
Examples
# 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)
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)