| 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