Description Usage Arguments Details Value References See Also Examples

View source: R/choiceRT_ddm_single.R

Individual Bayesian Modeling of choice/reaction time data with the following parameters: "alpha" (boundary separation), "beta" (bias), "delta" (drift rate), "tau" (non-decision time). The code is based on codes/comments by Guido Biele, Joseph Burling, Andrew Ellis, and potentially others @ Stan mailing

**MODEL:**
Ratcliff drift diffusion model - single subject. Note that this implementation is **not** the full drift diffusion model as described in
Ratcliff (1978). This implementation estimates the drift rate, boundary separation, starting point, and non-decision time, but not the between-
and within-trial variances in these parameters.

1 2 3 4 5 |

`data` |
A .txt file containing the data to be modeled. Data columns should be labelled as follows: "subjID, ""choice", and "RT". See |

`niter` |
Number of iterations, including warm-up. |

`nwarmup` |
Number of iterations used for warm-up only. |

`nchain` |
Number of chains to be run. |

`ncore` |
Integer value specifying how many CPUs to run the MCMC sampling on. Defaults to 1. |

`nthin` |
Every |

`inits` |
Character value specifying how the initial values should be generated. Options are "fixed" or "random" or your own initial values. |

`indPars` |
Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". |

`saveDir` |
Path to directory where .RData file of model output ( |

`RTbound` |
A floating point number representing the lower bound (i.e. minimum allowed) reaction time. Defaults to 0.1 (100 milliseconds). |

`modelRegressor` |
Exporting model-based regressors? TRUE or FALSE. Currently not available for this model. |

`vb` |
Use variational inference to approximately draw from a posterior distribution. Defaults to FALSE. |

`inc_postpred` |
( |

`adapt_delta` |
Floating point number representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See |

`stepsize` |
Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See |

`max_treedepth` |
Integer value specifying how many leapfrog steps that the MCMC sampler can take on each new iteration. See |

This section describes some of the function arguments in greater detail.

**data** should be assigned a character value specifying the full path and name of the file, including the file extension
(e.g. ".txt"), that contains the behavioral data of the subject of interest for the current analysis.
The file should be a **tab-delimited** text (.txt) file whose rows represent trial-by-trial observations and columns
represent variables. For choice/reaction-time tasks, there should be two columns of data with the labels "subjID", "choice", and "RT".
It is not necessary for the columns to be in this particular order, however it is necessary that they be labelled
correctly and contain the information below:

`"subjID"`

A unique identifier for each subject within data-set to be analyzed.

`"choice"`

An integer representing the choice made on the current trial. Lower/upper boundary or left/right choices should be coded as 1/2 (e.g., 1 1 1 2 1 2).

`"RT"`

A floating number the choice reaction time in

**seconds**. (e.g., 0.435 0.383 0.314 0.309, etc.).

*****Note: The data.txt file may contain other columns of data (e.g. "subjID", "trial_number", etc.), but only the data with the column
names listed above will be used for analysis/modeling. As long as the columns above are present and labelled correctly,
there is no need to remove other miscellaneous data columns.

**nwarmup** is a numerical value that specifies how many MCMC samples should not be stored upon the
beginning of each chain. For those familiar with Bayesian methods, this value is equivalent to a burn-in sample.
Due to the nature of MCMC sampling, initial values (where the sampling chain begins) can have a heavy influence
on the generated posterior distributions. The **nwarmup** argument can be set to a high number in order to curb the
effects that initial values have on the resulting posteriors.

**nchain** is a numerical value that specifies how many chains (i.e. independent sampling sequences) should be
used to draw samples from the posterior distribution. Since the posteriors are generated from a sampling
process, it is good practice to run multiple chains to ensure that a representative posterior is attained. When
sampling is completed, the multiple chains may be checked for convergence with the `plot(myModel, type = "trace")`

command. The chains should resemble a "furry caterpillar".

**nthin** is a numerical value that specifies the "skipping" behavior of the MCMC samples being chosen
to generate the posterior distributions. By default, **nthin** is equal to 1, hence every sample is used to
generate the posterior.

**Contol Parameters:** adapt_delta, stepsize, and max_treedepth are advanced options that give the user more control
over Stan's MCMC sampler. The Stan creators recommend that only advanced users change the default values, as alterations
can profoundly change the sampler's behavior. Refer to Hoffman & Gelman (2014, Journal of Machine Learning Research) for
more information on the functioning of the sampler control parameters. One can also refer to section 58.2 of the
Stan User's Manual for a less technical description of these arguments.

`modelData`

A class `'hBayesDM'`

object with the following components:

`model`

Character string with the name of the model (

`"choiceRT_ddm_single"`

).`allIndPars`

`'data.frame'`

containing the summarized parameter values (as specified by`'indPars'`

) for the single subject.`parVals`

A

`'list'`

where each element contains posterior samples over different model parameters.`fit`

A class

`'stanfit'`

object containing the fitted model.`rawdata`

`"data.frame"`

containing the raw data used to fit the model, as specified by the user.

Ratcliff, R. (1978). A theory of memory retrieval. Psychological Review, 85(2), 59-108. http://doi.org/10.1037/0033-295X.85.2.59

Hoffman, M. D., & Gelman, A. (2014). The No-U-turn sampler: adaptively setting path lengths in Hamiltonian Monte Carlo. The Journal of Machine Learning Research, 15(1), 1593-1623.

We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | ```
## Not run:
# Run the model and store results in "output"
output <- choiceRT_ddm_single(data = "example", niter = 2000, nwarmup = 1000, nchain = 3, ncore = 3)
# Visually check convergence of the sampling chains (should like like 'hairy caterpillars')
plot(output, type = 'trace')
# Check Rhat values (all Rhat values should be less than or equal to 1.1)
rhat(output)
# Plot the posterior distributions of the hyper-parameters (distributions should be unimodal)
plot(output)
# Show the WAIC and LOOIC model fit estimates
printFit(output)
## End(Not run)
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.