ggdmcPrior provides tools for specifying and evaluating prior distributions for cognitive models, with support for:
The package integrates seamlessly with the ggdmc ecosystem, enabling Bayesian inference for choice response time models in a hierarchical framework.
From CRAN:
install.packages("ggdmcPrior")
Although ggdmcPrior can be used independently, it is primarily designed to support the ggdmc workflow.
p0 <- c(A = 0.15, B = 0.45, mean_v = 2.25, sd_v = 0.15, t0 = 0.2)
p1 <- rep(0.1, 5); names(p1) <- names(p0)
p_prior <- BuildPrior(
p0 = p0,
p1 = p1,
lower = rep(NA, 5),
upper = rep(NA, 5),
log_p = rep(TRUE, 5),
dist = c("tnorm", "tnorm", "tnorm", "norm", "tnorm")
)
print_prior(p_prior) # Print definition
dprior(p_prior, seq(0.1, 0.5, 0.1)) # Density calculation
rprior(p_prior, 2) # Random sampling
plot_prior(p_prior) # Visualisation
p0 <- c(A = 0.15, B = 0.45, mean_v = 2.25, sd_v = 0.15, t0 = 0.2)
tnorm_prior <- BuildPrior(p0, rep(1, 5), rep(0, 5), rep(NA, 5), dist = rep("tnorm", 5))
gamma_prior <- BuildPrior(p0, rep(0.1,5), rep(NA, 5), rep(NA, 5), dist = rep("gamma", 5))
lnorm_prior <- BuildPrior(p0, rep(0.1,5), rep(NA, 5), rep(NA, 5), dist = rep("lnorm", 5))
cauchy_prior <- BuildPrior(p0, rep(0.1,5), rep(NA, 5), rep(NA, 5), dist = rep("cauchy", 5))
unif_prior <- BuildPrior(p0, rep(0.1,5), rep(NA, 5), rep(NA, 5), dist = rep("unif", 5))
norm_prior <- BuildPrior(p0, rep(0.1,5), rep(NA, 5), rep(NA, 5), dist = rep("norm", 5))
# Visualise all priors
lapply(list(tnorm_prior, gamma_prior, lnorm_prior, cauchy_prior, unif_prior, norm_prior),
plot_prior, font_size = 2.5, cex = 2.5)
set.seed(123)
parameters_r <- runif(length(p0), 0, 10)
sumlogprior(tnorm_prior, parameters_r)
sumlogprior(gamma_prior, parameters_r)
sumlogprior(lnorm_prior, parameters_r)
sumlogprior(cauchy_prior, parameters_r)
sumlogprior(unif_prior, parameters_r)
sumlogprior(norm_prior, parameters_r)
GPL (≥ 3)