set_priors | R Documentation |
Configures a set of joint prior distributions for:
Subject-level parameters (p_prior
), which also serve as the
likelihood function in population-level models.
Population-level location parameters (l_prior
).
Population-level scale parameters (s_prior
).
set_priors(p_prior, l_prior = NULL, s_prior = NULL)
p_prior |
A list specifying prior distributions for subject-level parameters (or the likelihood function for the population-level model). Each element in the list should contain:
|
l_prior |
Optional list specifying prior distributions for
population-level location parameters. Should have the same structure as
|
s_prior |
Optional list specifying prior distributions for
population-level scale parameters. Should have the same structure as
|
This function performs the following:
Validates the structure of all prior specifications.
Ensures required distribution parameters are present and bounds are valid.
Merges l_prior
and s_prior
into a single h_prior
using .merge_prior
.
Returns a structured prior
object for use in model fitting
and simulation.
The argument log_p
should be set to TRUE
for density
evaluation and FALSE
when generating samples (e.g., for initial
parameter values).
An S4 object of class "prior"
with the following slots:
nparameter
: Integer; number of parameters in the joint prior.
pnames
: Character vector of parameter names.
p_prior
: List containing prior specifications for
subject-level parameters.
h_prior
: List containing merged prior specifications for
l_prior
and s_prior
.
if (requireNamespace("ggdmcModel", quietly = TRUE)) {
BuildModel <- getFromNamespace("BuildModel", "ggdmcModel")
model <- BuildModel(
p_map = list(
A = "1", B = "1", t0 = "1", mean_v = "M", sd_v = "M",
st0 = "1"
),
match_map = list(M = list(s1 = "r1", s2 = "r2")),
factors = list(S = c("s1", "s2")),
constants = c(sd_v.false = 1, st0 = 0),
accumulators = c("r1", "r2"),
type = "lba"
)
####################################
# priors for subject-level modelling
####################################
p0 <- rep(0, model@npar)
names(p0) <- model@pnames
p_prior <- BuildPrior(
p0 = p0,
p1 = rep(10, model@npar),
lower = rep(0, model@npar),
upper = rep(NA, model@npar),
dist = rep("unif", model@npar),
log_p = rep(TRUE, model@npar)
)
sub_priors <- set_priors(p_prior = p_prior)
####################################
# priors for hierarchical modelling
####################################
p0 <- runif(model@npar)
names(p0) <- model@pnames
model_likelihood <- BuildPrior(
p0 = p0,
p1 = rep(10, model@npar),
lower = rep(0, model@npar),
upper = rep(NA, model@npar),
dist = rep("tnorm", model@npar),
log_p = rep(TRUE, model@npar)
)
p0 <- rep(0, model@npar)
names(p0) <- model@pnames
l_prior <- BuildPrior(
p0 = p0,
p1 = rep(10, model@npar),
lower = rep(0, model@npar),
upper = rep(NA, model@npar),
dist = rep("unif", model@npar),
log_p = rep(TRUE, model@npar)
)
s_prior <- BuildPrior(
p0 = p0,
p1 = rep(10, model@npar),
lower = rep(NA, model@npar),
upper = rep(NA, model@npar),
dist = rep("unif", model@npar),
log_p = rep(TRUE, model@npar)
)
pop_priors <- set_priors(
p_prior = model_likelihood,
l_prior = l_prior, s_prior = s_prior
)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.