Type: | Package |
Title: | Longitudinal Drift-Diffusion Mixed Models (LDDMM) |
Version: | 0.4.2 |
Date: | 2024-01-17 |
Description: | Implementation of the drift-diffusion mixed model for category learning as described in Paulon et al. (2021) <doi:10.1080/01621459.2020.1801448>. |
Depends: | R (≥ 4.1.0) |
Language: | en-US |
License: | MIT + file LICENSE |
Encoding: | UTF-8 |
Imports: | Rcpp (≥ 1.0.6), gtools, LaplacesDemon, dplyr, plyr, tidyr, ggplot2, latex2exp, reshape2, RColorBrewer |
LazyData: | true |
LinkingTo: | Rcpp, RcppArmadillo, RcppProgress, rgen |
RoxygenNote: | 7.2.3 |
Suggests: | rmarkdown, knitr |
VignetteBuilder: | knitr |
NeedsCompilation: | yes |
Packaged: | 2024-01-17 20:00:33 UTC; giorgio |
Author: | Giorgio Paulon [aut, cre], Abhra Sarkar [aut, ctb] |
Maintainer: | Giorgio Paulon <giorgio.paulon@utexas.edu> |
Repository: | CRAN |
Date/Publication: | 2024-01-17 20:10:02 UTC |
Spline Basis Functions
Description
Construct the J basis functions for the splines evaluated on a grid.
Usage
B_basis(xgrid, knots)
Arguments
xgrid |
grid where we want to evaluate the spline functions (vector of length n) |
knots |
vector of knots for the splines (vector of length K) |
Value
n x (K+1) - matrix representing the value of each basis function evaluated on xgrid
Hamming Ball
Description
Computes the Hamming Ball centered at x with radius r.
Usage
H_ball(x, S, r)
Arguments
x |
center of the Hamming Ball |
S |
number of states |
r |
radius of the Hamming Ball |
Value
Hamming Ball
Drift Diffusion Model Fit
Description
Main function for the Gibbs sampler for the drift-diffusion model. Note that
priors are noninformative and calibrated so that, for the most stable
performance, the response times (variable r_time
in the data
dataframe)
should lie between 0 and 10.
Usage
LDDMM(
data,
hypers,
cluster = TRUE,
boundaries = "flexible",
Niter = 5000,
burnin = 2000,
thin = 5
)
Arguments
data |
dataframe with the following columns:
|
hypers |
hyperparameters of the MCMC: list containing "s_sigma_mu" and "s_sigma_b", which are the smoothness parameters for drifts and boundaries, respectively) |
cluster |
should clustering be used? (default = TRUE) |
boundaries |
whether to fit the unrestricted model (flexible), assume constant boundaries over time (constant) or fix the boundaries to the same level across predictors (fixed) |
Niter |
total number of iterations |
burnin |
burnin of the chain |
thin |
thinning factor |
Value
List with the following MCMC posterior samples:
post_mean_delta: posterior samples for the population offset parameters
post_mean_mu: posterior samples for the population drift parameters
post_mean_b: posterior samples for the population boundary parameters
post_ind_delta: posterior samples for the individual offset parameters
post_ind_mu: posterior samples for the individual drift parameters
post_ind_b: posterior samples for the individual boundary parameters
sigma2_mu_us: posterior samples for the random effects drift smoothness parameters
sigma2_mu_ua: posterior samples for the random effects drift variance parameters
sigma2_b_us: posterior samples for the random effects boundary smoothness parameters
sigma2_b_ua: posterior samples for the random effects boundary variance parameters
sigma2_1_mu: posterior samples for the drift smoothness parameters
sigma2_1_b: posterior samples for the boundary smoothness parameters
pred_ans: predicted population-level categories
pred_time: predicted population-level response times
pred_ans_ind: predicted individual-level categories
pred_time_ind: predicted individual-level response times
Spline Penalty Matrix
Description
Construct the covariance matrix P of the smoothness inducing prior for the spline coefficients
Usage
P_smooth1(K)
Arguments
K |
Number of spline knots |
Value
Covariance of the smoothness inducing prior (penalizing first differences in the spline coefficients)
Calculate WAIC
Description
Function to compute the Watanabe-Akaike information criterion (Gelman, Hwang, Vehtari, 2014), which estimates the expected out-of-sample-prediction error using a bias-corrected adjustment of within-sample error.
Usage
compute_WAIC(model_fit)
Arguments
model_fit |
results of a model fit from the lddmm function |
Value
A scalar indicating the WAIC (smaller WAIC denotes better fit)
Example dataset
Description
A toy dataset in the correct format for the LDDMM function call. This dataset has two possible response categories.
Usage
data
Format
A data frame with 24,254 rows and 6 columns
Details
-
subject
: vector of size n containing the participant labels -
block
: vector of size n containing the training blocks (longitudinal units) -
s
: vector of size n containing the stimuli -
d
: vector of size n containing the decisions -
r_time
: vector of size n containing the response times (log transformed) -
cens
: vector of size n containing the censoring indicators (1 censored, 0 non censored)
Parameter posterior draws
Description
Function to extract the posterior draws of the parameters of interest from a lddmm fit object.
Usage
extract_post_draws(data, fit, par = c("drift", "boundary"))
Arguments
data |
dataframe with the following columns:
|
fit |
fit from the lddmm function |
par |
parameter to output ('drift', or 'boundary') |
Value
Matrix with the following columns:
subject: participant labels
block: training blocks
draw: iteration of the MCMC estimates
par_s_d, ...: posterior draws for the requested parameters
Parameter posterior means
Description
Function to extract the posterior means of the parameters of interest from a lddmm fit object.
Usage
extract_post_mean(data, fit, par = c("drift", "boundary"))
Arguments
data |
dataframe with the following columns:
|
fit |
fit from the lddmm function |
par |
parameter to output ('drift', or 'boundary') |
Value
Matrix with the following columns:
subject: participant labels
block: training blocks
par_s_d, ...: posterior means for the requested parameters
Log-likelihood computation
Description
Compute the log-likelihood for the drift-diffusion model, including the censored data contribution.
Usage
log_likelihood(tau, mu, b, delta, cens, D, log)
Arguments
tau |
vector of size n containing the response times |
mu |
matrix of size (n x d1) containing the drift parameters corresponding to the n response times for each possible d1 decision |
b |
matrix of size (n x d1) containing the boundary parameters corresponding to the n response times for each possible d1 decision |
delta |
vector of size n containing the offset parameters corresponding to the n response times |
cens |
vector of size n containing censoring indicators (1 censored, 0 not censored) corresponding to the n response times |
D |
(n x 2) matrix whose first column has the n input stimuli, and whose second column has the n decision categories |
log |
should the results be returned on the log scale? |
Log-likelihood computation for a single observation
Description
Compute the log-likelihood for the drift-diffusion model, including the censored data contribution, for a single observation.
Usage
log_likelihood_ind(tau, mu, b, delta, cens, D)
Arguments
tau |
vector of size n containing the response times |
mu |
matrix of size (n x d1) containing the drift parameters corresponding to the n response times for each possible d1 decision |
b |
matrix of size (n x d1) containing the boundary parameters corresponding to the n response times for each possible d1 decision |
delta |
vector of size n containing the offset parameters corresponding to the n response times |
cens |
vector of size n containing censoring indicators (1 censored, 0 not censored) corresponding to the n response times |
D |
(n x 2) matrix whose first column has the n input stimuli, and whose second column has the n decision categories |
Descriptive plots
Description
Plot the mean response times of the raw data.
Usage
plot_RT(data)
Arguments
data |
dataframe with the following columns:
|
Value
Population level raw response times
Descriptive plots
Description
Plot the accuracy of the raw data.
Usage
plot_accuracy(data)
Arguments
data |
dataframe with the following columns:
|
Value
Individual and population level raw accuracies
Plot posterior estimates
Description
Function to plot the posterior mean and credible intervals of the parameters of interest from a lddmm fit object.
Usage
plot_post_pars(data, fit, par = c("drift", "boundary"))
Arguments
data |
dataframe with the following columns:
|
fit |
fit from the lddmm function |
par |
parameter to output ('drift', or 'boundary') |
Value
Posterior mean and 95% CI