| Title: | Hierarchical Bayesian Modeling of Decision-Making Tasks | 
| Version: | 1.2.1 | 
| Date: | 2022-09-13 | 
| Author: | Woo-Young Ahn [aut, cre], Nate Haines [aut], Lei Zhang [aut], Harhim Park [ctb], Jaeyeong Yang [ctb], Jethro Lee [ctb] | 
| Maintainer: | Woo-Young Ahn <wooyoung.ahn@gmail.com> | 
| Description: | Fit an array of decision-making tasks with computational models in a hierarchical Bayesian framework. Can perform hierarchical Bayesian analysis of various computational models with a single line of coding (Ahn et al., 2017) <doi:10.1162/CPSY_a_00002>. | 
| Depends: | R (≥ 3.4.0), Rcpp (≥ 0.12.0), methods | 
| Imports: | rstan (≥ 2.18.1), loo (≥ 2.0), grid, parallel, ggplot2, data.table | 
| LinkingTo: | BH (≥ 1.66.0), Rcpp (≥ 0.12.0), RcppEigen (≥ 0.3.3.3.0), rstan (≥ 2.18.1), StanHeaders (≥ 2.18.0) | 
| URL: | https://github.com/CCS-Lab/hBayesDM | 
| BugReports: | https://github.com/CCS-Lab/hBayesDM/issues | 
| License: | GPL-3 | 
| NeedsCompilation: | yes | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.2.1 | 
| SystemRequirements: | GNU make | 
| Collate: | 'HDIofMCMC.R' 'preprocess_funcs.R' 'stanmodels.R' 'settings.R' 'hBayesDM_model.R' 'alt_delta.R' 'alt_gamma.R' 'bandit2arm_delta.R' 'bandit4arm2_kalman_filter.R' 'bandit4arm_2par_lapse.R' 'bandit4arm_4par.R' 'bandit4arm_lapse.R' 'bandit4arm_lapse_decay.R' 'bandit4arm_singleA_lapse.R' 'banditNarm_2par_lapse.R' 'banditNarm_4par.R' 'banditNarm_delta.R' 'banditNarm_kalman_filter.R' 'banditNarm_lapse.R' 'banditNarm_lapse_decay.R' 'banditNarm_singleA_lapse.R' 'bart_ewmv.R' 'bart_par4.R' 'cgt_cm.R' 'choiceRT_ddm.R' 'choiceRT_ddm_single.R' 'choiceRT_lba.R' 'choiceRT_lba_single.R' 'cra_exp.R' 'cra_linear.R' 'dbdm_prob_weight.R' 'dd_cs.R' 'dd_cs_single.R' 'dd_exp.R' 'dd_hyperbolic.R' 'dd_hyperbolic_single.R' 'estimate_mode.R' 'extract_ic.R' 'gng_m1.R' 'gng_m2.R' 'gng_m3.R' 'gng_m4.R' 'hBayesDM.R' 'igt_orl.R' 'igt_pvl_decay.R' 'igt_pvl_delta.R' 'igt_vpp.R' 'multiplot.R' 'peer_ocu.R' 'plot.hBayesDM.R' 'plotDist.R' 'plotHDI.R' 'plotInd.R' 'printFit.R' 'prl_ewa.R' 'prl_fictitious.R' 'prl_fictitious_multipleB.R' 'prl_fictitious_rp.R' 'prl_fictitious_rp_woa.R' 'prl_fictitious_woa.R' 'prl_rp.R' 'prl_rp_multipleB.R' 'pstRT_ddm.R' 'pstRT_rlddm1.R' 'pstRT_rlddm6.R' 'pst_Q.R' 'pst_gainloss_Q.R' 'ra_noLA.R' 'ra_noRA.R' 'ra_prospect.R' 'rdt_happiness.R' 'rhat.R' 'task2AFC_sdt.R' 'ts_par4.R' 'ts_par6.R' 'ts_par7.R' 'ug_bayes.R' 'ug_delta.R' 'wcs_sql.R' 'zzz.R' | 
| Suggests: | testthat | 
| Packaged: | 2022-09-23 07:42:58 UTC; hoyoung | 
| Repository: | CRAN | 
| Date/Publication: | 2022-09-23 08:30:02 UTC | 
Hierarchical Bayesian Modeling of Decision-Making Tasks
Description
Fit an array of decision-making tasks with computational models in a hierarchical Bayesian framework. Can perform hierarchical Bayesian analysis of various computational models with a single line of coding. Bolded tasks, followed by their respective models, are itemized below.
- Bandit
- 2-Armed Bandit (Rescorla-Wagner (delta)) — bandit2arm_delta 
 4-Armed Bandit with fictive updating + reward/punishment sensitvity (Rescorla-Wagner (delta)) — bandit4arm_4par
 4-Armed Bandit with fictive updating + reward/punishment sensitvity + lapse (Rescorla-Wagner (delta)) — bandit4arm_lapse
- Bandit2
- Kalman filter — bandit4arm2_kalman_filter 
- Cambridge Gambling Task
- Cumulative Model — cgt_cm 
- Choice RT
- Drift Diffusion Model — choiceRT_ddm 
 Drift Diffusion Model for a single subject — choiceRT_ddm_single
 Linear Ballistic Accumulator (LBA) model — choiceRT_lba
 Linear Ballistic Accumulator (LBA) model for a single subject — choiceRT_lba_single
- Choice under Risk and Ambiguity
- Exponential model — cra_exp 
 Linear model — cra_linear
- Description-Based Decision Making
- probability weight function — dbdm_prob_weight 
- Delay Discounting
- Constant Sensitivity — dd_cs 
 Constant Sensitivity for a single subject — dd_cs_single
 Exponential — dd_exp
 Hyperbolic — dd_hyperbolic
 Hyperbolic for a single subject — dd_hyperbolic_single
- Orthogonalized Go/Nogo
- RW + Noise — gng_m1 
 RW + Noise + Bias — gng_m2
 RW + Noise + Bias + Pavlovian Bias — gng_m3
 RW(modified) + Noise + Bias + Pavlovian Bias — gng_m4
- Iowa Gambling
- Outcome-Representation Learning — igt_orl 
 Prospect Valence Learning-DecayRI — igt_pvl_decay
 Prospect Valence Learning-Delta — igt_pvl_delta
 Value-Plus_Perseverance — igt_vpp
- Peer influence task
- OCU model — peer_ocu 
- Probabilistic Reversal Learning
- Experience-Weighted Attraction — prl_ewa 
 Fictitious Update — prl_fictitious
 Fictitious Update w/o alpha (indecision point) — prl_fictitious_woa
 Fictitious Update and multiple blocks per subject — prl_fictitious_multipleB
 Reward-Punishment — prl_rp
 Reward-Punishment and multiple blocks per subject — prl_rp_multipleB
 Fictitious Update with separate learning for Reward-Punishment — prl_fictitious_rp
 Fictitious Update with separate learning for Reward-Punishment w/o alpha (indecision point) — prl_fictitious_rp_woa
- Probabilistic Selection Task
- Q-learning with two learning rates — pst_gainloss_Q 
- Risk Aversion
- Prospect Theory (PT) — ra_prospect 
 PT without a loss aversion parameter — ra_noLA
 PT without a risk aversion parameter — ra_noRA
- Risky Decision Task
- Happiness model — rdt_happiness 
- Two-Step task
- Full model (7 parameters) — ts_par7 
 6 parameter model (without eligibility trace, lambda) — ts_par6
 4 parameter model — ts_par4
- Ultimatum Game
- Ideal Bayesian Observer — ug_bayes 
 Rescorla-Wagner (delta) — ug_delta
Author(s)
Woo-Young Ahn wahn55@snu.ac.kr
Nathaniel Haines haines.175@osu.edu
Lei Zhang bnuzhanglei2008@gmail.com
References
Please cite as: Ahn, W.-Y., Haines, N., & Zhang, L. (2017). Revealing neuro-computational mechanisms of reinforcement learning and decision-making with the hBayesDM package. Computational Psychiatry. 1, 24-57. https://doi.org/10.1162/CPSY_a_00002
See Also
For tutorials and further readings, visit : http://rpubs.com/CCSL/hBayesDM.
Compute Highest-Density Interval
Description
Computes the highest density interval from a sample of representative values, estimated as shortest credible interval. Based on John Kruschke's codes.
Usage
HDIofMCMC(sampleVec, credMass = 0.95)
Arguments
| sampleVec | A vector of representative values from a probability distribution (e.g., MCMC samples). | 
| credMass | A scalar between 0 and 1, indicating the mass within the credible interval that is to be estimated. | 
Value
A vector containing the limits of the HDI
Rescorla-Wagner (Delta) Model
Description
Hierarchical Bayesian Modeling of the Aversive Learning Task using Rescorla-Wagner (Delta) Model.
It has the following parameters: A (learning rate), beta (inverse temperature), gamma (risk preference).
-  Task: Aversive Learning Task (Browning et al., 2015) 
-  Model: Rescorla-Wagner (Delta) Model 
Usage
alt_delta(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Aversive Learning Task, there should be 5 columns of data with the
labels "subjID", "choice", "outcome", "bluePunish", "orangePunish". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on the given trial (blue == 1, orange == 2). 
- outcome
- Integer value representing the outcome of the given trial (punishment == 1, and non-punishment == 0). 
- bluePunish
- Floating point value representing the magnitude of punishment for blue on that trial (e.g., 10, 97) 
- orangePunish
- Floating point value representing the magnitude of punishment for orange on that trial (e.g., 23, 45) 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Lili Zhang <lili.zhang27@mail.dcu.ie>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"alt_delta"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Browning, M., Behrens, T. E., Jocham, G., O'reilly, J. X., & Bishop, S. J. (2015). Anxious individuals have difficulty learning the causal statistics of aversive environments. Nature neuroscience, 18(4), 590.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- alt_delta(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- alt_delta(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Rescorla-Wagner (Gamma) Model
Description
Hierarchical Bayesian Modeling of the Aversive Learning Task using Rescorla-Wagner (Gamma) Model.
It has the following parameters: A (learning rate), beta (inverse temperature), gamma (risk preference).
-  Task: Aversive Learning Task (Browning et al., 2015) 
-  Model: Rescorla-Wagner (Gamma) Model 
Usage
alt_gamma(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Aversive Learning Task, there should be 5 columns of data with the
labels "subjID", "choice", "outcome", "bluePunish", "orangePunish". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on the given trial (blue == 1, orange == 2). 
- outcome
- Integer value representing the outcome of the given trial (punishment == 1, and non-punishment == 0). 
- bluePunish
- Floating point value representing the magnitude of punishment for blue on that trial (e.g., 10, 97) 
- orangePunish
- Floating point value representing the magnitude of punishment for orange on that trial (e.g., 23, 45) 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Lili Zhang <lili.zhang27@mail.dcu.ie>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"alt_gamma"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Browning, M., Behrens, T. E., Jocham, G., O'reilly, J. X., & Bishop, S. J. (2015). Anxious individuals have difficulty learning the causal statistics of aversive environments. Nature neuroscience, 18(4), 590.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- alt_gamma(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- alt_gamma(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Rescorla-Wagner (Delta) Model
Description
Hierarchical Bayesian Modeling of the 2-Armed Bandit Task using Rescorla-Wagner (Delta) Model.
It has the following parameters: A (learning rate), tau (inverse temperature).
-  Task: 2-Armed Bandit Task (Erev et al., 2010; Hertwig et al., 2004) 
-  Model: Rescorla-Wagner (Delta) Model 
Usage
bandit2arm_delta(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the 2-Armed Bandit Task, there should be 3 columns of data with the
labels "subjID", "choice", "outcome". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on the given trial: 1 or 2. 
- outcome
- Integer value representing the outcome of the given trial (where reward == 1, and loss == -1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"bandit2arm_delta"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Erev, I., Ert, E., Roth, A. E., Haruvy, E., Herzog, S. M., Hau, R., et al. (2010). A choice prediction competition: Choices from experience and from description. Journal of Behavioral Decision Making, 23(1), 15-47. https://doi.org/10.1002/bdm.683
Hertwig, R., Barron, G., Weber, E. U., & Erev, I. (2004). Decisions From Experience and the Effect of Rare Events in Risky Choice. Psychological Science, 15(8), 534-539. https://doi.org/10.1111/j.0956-7976.2004.00715.x
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- bandit2arm_delta(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- bandit2arm_delta(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Kalman Filter
Description
Hierarchical Bayesian Modeling of the 4-Armed Bandit Task (modified) using Kalman Filter.
It has the following parameters: lambda (decay factor), theta (decay center), beta (inverse softmax temperature), mu0 (anticipated initial mean of all 4 options), s0 (anticipated initial sd (uncertainty factor) of all 4 options), sD (sd of diffusion noise).
-  Task: 4-Armed Bandit Task (modified) 
-  Model: Kalman Filter (Daw et al., 2006) 
Usage
bandit4arm2_kalman_filter(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the 4-Armed Bandit Task (modified), there should be 3 columns of data with the
labels "subjID", "choice", "outcome". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on the given trial: 1, 2, 3, or 4. 
- outcome
- Integer value representing the outcome of the given trial (where reward == 1, and loss == -1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Yoonseo Zoh <zohyos7@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"bandit4arm2_kalman_filter"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Daw, N. D., O'Doherty, J. P., Dayan, P., Seymour, B., & Dolan, R. J. (2006). Cortical substrates for exploratory decisions in humans. Nature, 441(7095), 876-879.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- bandit4arm2_kalman_filter(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- bandit4arm2_kalman_filter(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
3 Parameter Model, without C (choice perseveration), R (reward sensitivity), and P (punishment sensitivity). But with xi (noise)
Description
Hierarchical Bayesian Modeling of the 4-Armed Bandit Task using 3 Parameter Model, without C (choice perseveration), R (reward sensitivity), and P (punishment sensitivity). But with xi (noise).
It has the following parameters: Arew (reward learning rate), Apun (punishment learning rate), xi (noise).
-  Task: 4-Armed Bandit Task 
-  Model: 3 Parameter Model, without C (choice perseveration), R (reward sensitivity), and P (punishment sensitivity). But with xi (noise) (Aylward et al., 2018) 
Usage
bandit4arm_2par_lapse(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the 4-Armed Bandit Task, there should be 4 columns of data with the
labels "subjID", "choice", "gain", "loss". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on the given trial: 1, 2, 3, or 4. 
- gain
- Floating point value representing the amount of currency won on the given trial (e.g. 50, 100). 
- loss
- Floating point value representing the amount of currency lost on the given trial (e.g. 0, -50). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"bandit4arm_2par_lapse"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Aylward, Valton, Ahn, Bond, Dayan, Roiser, & Robinson (2018) Altered decision-making under uncertainty in unmedicated mood and anxiety disorders. PsyArxiv. 10.31234/osf.io/k5b8m
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- bandit4arm_2par_lapse(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- bandit4arm_2par_lapse(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
4 Parameter Model, without C (choice perseveration)
Description
Hierarchical Bayesian Modeling of the 4-Armed Bandit Task using 4 Parameter Model, without C (choice perseveration).
It has the following parameters: Arew (reward learning rate), Apun (punishment learning rate), R (reward sensitivity), P (punishment sensitivity).
-  Task: 4-Armed Bandit Task 
-  Model: 4 Parameter Model, without C (choice perseveration) (Seymour et al., 2012) 
Usage
bandit4arm_4par(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the 4-Armed Bandit Task, there should be 4 columns of data with the
labels "subjID", "choice", "gain", "loss". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on the given trial: 1, 2, 3, or 4. 
- gain
- Floating point value representing the amount of currency won on the given trial (e.g. 50, 100). 
- loss
- Floating point value representing the amount of currency lost on the given trial (e.g. 0, -50). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"bandit4arm_4par"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Seymour, Daw, Roiser, Dayan, & Dolan (2012). Serotonin Selectively Modulates Reward Value in Human Decision-Making. J Neuro, 32(17), 5833-5842.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- bandit4arm_4par(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- bandit4arm_4par(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
5 Parameter Model, without C (choice perseveration) but with xi (noise)
Description
Hierarchical Bayesian Modeling of the 4-Armed Bandit Task using 5 Parameter Model, without C (choice perseveration) but with xi (noise).
It has the following parameters: Arew (reward learning rate), Apun (punishment learning rate), R (reward sensitivity), P (punishment sensitivity), xi (noise).
-  Task: 4-Armed Bandit Task 
-  Model: 5 Parameter Model, without C (choice perseveration) but with xi (noise) (Seymour et al., 2012) 
Usage
bandit4arm_lapse(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the 4-Armed Bandit Task, there should be 4 columns of data with the
labels "subjID", "choice", "gain", "loss". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on the given trial: 1, 2, 3, or 4. 
- gain
- Floating point value representing the amount of currency won on the given trial (e.g. 50, 100). 
- loss
- Floating point value representing the amount of currency lost on the given trial (e.g. 0, -50). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"bandit4arm_lapse"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Seymour, Daw, Roiser, Dayan, & Dolan (2012). Serotonin Selectively Modulates Reward Value in Human Decision-Making. J Neuro, 32(17), 5833-5842.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- bandit4arm_lapse(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- bandit4arm_lapse(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
5 Parameter Model, without C (choice perseveration) but with xi (noise). Added decay rate (Niv et al., 2015, J. Neuro).
Description
Hierarchical Bayesian Modeling of the 4-Armed Bandit Task using 5 Parameter Model, without C (choice perseveration) but with xi (noise). Added decay rate (Niv et al., 2015, J. Neuro)..
It has the following parameters: Arew (reward learning rate), Apun (punishment learning rate), R (reward sensitivity), P (punishment sensitivity), xi (noise), d (decay rate).
-  Task: 4-Armed Bandit Task 
-  Model: 5 Parameter Model, without C (choice perseveration) but with xi (noise). Added decay rate (Niv et al., 2015, J. Neuro). (Aylward et al., 2018) 
Usage
bandit4arm_lapse_decay(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the 4-Armed Bandit Task, there should be 4 columns of data with the
labels "subjID", "choice", "gain", "loss". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on the given trial: 1, 2, 3, or 4. 
- gain
- Floating point value representing the amount of currency won on the given trial (e.g. 50, 100). 
- loss
- Floating point value representing the amount of currency lost on the given trial (e.g. 0, -50). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"bandit4arm_lapse_decay"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Aylward, Valton, Ahn, Bond, Dayan, Roiser, & Robinson (2018) Altered decision-making under uncertainty in unmedicated mood and anxiety disorders. PsyArxiv. 10.31234/osf.io/k5b8m
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- bandit4arm_lapse_decay(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- bandit4arm_lapse_decay(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
4 Parameter Model, without C (choice perseveration) but with xi (noise). Single learning rate both for R and P.
Description
Hierarchical Bayesian Modeling of the 4-Armed Bandit Task using 4 Parameter Model, without C (choice perseveration) but with xi (noise). Single learning rate both for R and P..
It has the following parameters: A (learning rate), R (reward sensitivity), P (punishment sensitivity), xi (noise).
-  Task: 4-Armed Bandit Task 
-  Model: 4 Parameter Model, without C (choice perseveration) but with xi (noise). Single learning rate both for R and P. (Aylward et al., 2018) 
Usage
bandit4arm_singleA_lapse(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the 4-Armed Bandit Task, there should be 4 columns of data with the
labels "subjID", "choice", "gain", "loss". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on the given trial: 1, 2, 3, or 4. 
- gain
- Floating point value representing the amount of currency won on the given trial (e.g. 50, 100). 
- loss
- Floating point value representing the amount of currency lost on the given trial (e.g. 0, -50). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"bandit4arm_singleA_lapse"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Aylward, Valton, Ahn, Bond, Dayan, Roiser, & Robinson (2018) Altered decision-making under uncertainty in unmedicated mood and anxiety disorders. PsyArxiv. 10.31234/osf.io/k5b8m
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- bandit4arm_singleA_lapse(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- bandit4arm_singleA_lapse(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
3 Parameter Model, without C (choice perseveration), R (reward sensitivity), and P (punishment sensitivity). But with xi (noise)
Description
Hierarchical Bayesian Modeling of the N-Armed Bandit Task using 3 Parameter Model, without C (choice perseveration), R (reward sensitivity), and P (punishment sensitivity). But with xi (noise).
It has the following parameters: Arew (reward learning rate), Apun (punishment learning rate), xi (noise).
-  Task: N-Armed Bandit Task 
-  Model: 3 Parameter Model, without C (choice perseveration), R (reward sensitivity), and P (punishment sensitivity). But with xi (noise) (Aylward et al., 2018) 
Usage
banditNarm_2par_lapse(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the N-Armed Bandit Task, there should be 4 columns of data with the
labels "subjID", "choice", "gain", "loss". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on the given trial: 1, 2, 3, ... N. 
- gain
- Floating point value representing the amount of currency won on the given trial (e.g. 50, 100). 
- loss
- Floating point value representing the amount of currency lost on the given trial (e.g. 0, -50). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Cheol Jun Cho <cjfwndnsl@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"banditNarm_2par_lapse"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Aylward, Valton, Ahn, Bond, Dayan, Roiser, & Robinson (2018) Altered decision-making under uncertainty in unmedicated mood and anxiety disorders. PsyArxiv. 10.31234/osf.io/k5b8m
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- banditNarm_2par_lapse(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- banditNarm_2par_lapse(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
4 Parameter Model, without C (choice perseveration)
Description
Hierarchical Bayesian Modeling of the N-Armed Bandit Task using 4 Parameter Model, without C (choice perseveration).
It has the following parameters: Arew (reward learning rate), Apun (punishment learning rate), R (reward sensitivity), P (punishment sensitivity).
-  Task: N-Armed Bandit Task 
-  Model: 4 Parameter Model, without C (choice perseveration) (Seymour et al., 2012) 
Usage
banditNarm_4par(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the N-Armed Bandit Task, there should be 4 columns of data with the
labels "subjID", "choice", "gain", "loss". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on the given trial: 1, 2, 3, ... N. 
- gain
- Floating point value representing the amount of currency won on the given trial (e.g. 50, 100). 
- loss
- Floating point value representing the amount of currency lost on the given trial (e.g. 0, -50). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Cheol Jun Cho <cjfwndnsl@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"banditNarm_4par"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Seymour, Daw, Roiser, Dayan, & Dolan (2012). Serotonin Selectively Modulates Reward Value in Human Decision-Making. J Neuro, 32(17), 5833-5842.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- banditNarm_4par(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- banditNarm_4par(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Rescorla-Wagner (Delta) Model
Description
Hierarchical Bayesian Modeling of the N-Armed Bandit Task using Rescorla-Wagner (Delta) Model.
It has the following parameters: A (learning rate), tau (inverse temperature).
-  Task: N-Armed Bandit Task (Erev et al., 2010; Hertwig et al., 2004) 
-  Model: Rescorla-Wagner (Delta) Model 
Usage
banditNarm_delta(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the N-Armed Bandit Task, there should be 4 columns of data with the
labels "subjID", "choice", "gain", "loss". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on the given trial: 1, 2, 3, ... N. 
- gain
- Floating point value representing the amount of currency won on the given trial (e.g. 50, 100). 
- loss
- Floating point value representing the amount of currency lost on the given trial (e.g. 0, -50). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Cheol Jun Cho <cjfwndnsl@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"banditNarm_delta"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Erev, I., Ert, E., Roth, A. E., Haruvy, E., Herzog, S. M., Hau, R., et al. (2010). A choice prediction competition: Choices from experience and from description. Journal of Behavioral Decision Making, 23(1), 15-47. https://doi.org/10.1002/bdm.683
Hertwig, R., Barron, G., Weber, E. U., & Erev, I. (2004). Decisions From Experience and the Effect of Rare Events in Risky Choice. Psychological Science, 15(8), 534-539. https://doi.org/10.1111/j.0956-7976.2004.00715.x
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- banditNarm_delta(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- banditNarm_delta(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Kalman Filter
Description
Hierarchical Bayesian Modeling of the N-Armed Bandit Task (modified) using Kalman Filter.
It has the following parameters: lambda (decay factor), theta (decay center), beta (inverse softmax temperature), mu0 (anticipated initial mean of all 4 options), s0 (anticipated initial sd (uncertainty factor) of all 4 options), sD (sd of diffusion noise).
-  Task: N-Armed Bandit Task (modified) 
-  Model: Kalman Filter (Daw et al., 2006) 
Usage
banditNarm_kalman_filter(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the N-Armed Bandit Task (modified), there should be 4 columns of data with the
labels "subjID", "choice", "gain", "loss". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on the given trial: 1, 2, 3, ... N. 
- gain
- Floating point value representing the amount of currency won on the given trial (e.g. 50, 100). 
- loss
- Floating point value representing the amount of currency lost on the given trial (e.g. 0, -50). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Yoonseo Zoh <zohyos7@gmail.com>, Cheol Jun Cho <cjfwndnsl@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"banditNarm_kalman_filter"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Daw, N. D., O'Doherty, J. P., Dayan, P., Seymour, B., & Dolan, R. J. (2006). Cortical substrates for exploratory decisions in humans. Nature, 441(7095), 876-879.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- banditNarm_kalman_filter(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- banditNarm_kalman_filter(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
5 Parameter Model, without C (choice perseveration) but with xi (noise)
Description
Hierarchical Bayesian Modeling of the N-Armed Bandit Task using 5 Parameter Model, without C (choice perseveration) but with xi (noise).
It has the following parameters: Arew (reward learning rate), Apun (punishment learning rate), R (reward sensitivity), P (punishment sensitivity), xi (noise).
-  Task: N-Armed Bandit Task 
-  Model: 5 Parameter Model, without C (choice perseveration) but with xi (noise) (Seymour et al., 2012) 
Usage
banditNarm_lapse(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the N-Armed Bandit Task, there should be 4 columns of data with the
labels "subjID", "choice", "gain", "loss". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on the given trial: 1, 2, 3, ... N. 
- gain
- Floating point value representing the amount of currency won on the given trial (e.g. 50, 100). 
- loss
- Floating point value representing the amount of currency lost on the given trial (e.g. 0, -50). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Cheol Jun Cho <cjfwndnsl@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"banditNarm_lapse"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Seymour, Daw, Roiser, Dayan, & Dolan (2012). Serotonin Selectively Modulates Reward Value in Human Decision-Making. J Neuro, 32(17), 5833-5842.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- banditNarm_lapse(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- banditNarm_lapse(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
5 Parameter Model, without C (choice perseveration) but with xi (noise). Added decay rate (Niv et al., 2015, J. Neuro).
Description
Hierarchical Bayesian Modeling of the N-Armed Bandit Task using 5 Parameter Model, without C (choice perseveration) but with xi (noise). Added decay rate (Niv et al., 2015, J. Neuro)..
It has the following parameters: Arew (reward learning rate), Apun (punishment learning rate), R (reward sensitivity), P (punishment sensitivity), xi (noise), d (decay rate).
-  Task: N-Armed Bandit Task 
-  Model: 5 Parameter Model, without C (choice perseveration) but with xi (noise). Added decay rate (Niv et al., 2015, J. Neuro). (Aylward et al., 2018) 
Usage
banditNarm_lapse_decay(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the N-Armed Bandit Task, there should be 4 columns of data with the
labels "subjID", "choice", "gain", "loss". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on the given trial: 1, 2, 3, ... N. 
- gain
- Floating point value representing the amount of currency won on the given trial (e.g. 50, 100). 
- loss
- Floating point value representing the amount of currency lost on the given trial (e.g. 0, -50). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Cheol Jun Cho <cjfwndnsl@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"banditNarm_lapse_decay"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Aylward, Valton, Ahn, Bond, Dayan, Roiser, & Robinson (2018) Altered decision-making under uncertainty in unmedicated mood and anxiety disorders. PsyArxiv. 10.31234/osf.io/k5b8m
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- banditNarm_lapse_decay(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- banditNarm_lapse_decay(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
4 Parameter Model, without C (choice perseveration) but with xi (noise). Single learning rate both for R and P.
Description
Hierarchical Bayesian Modeling of the N-Armed Bandit Task using 4 Parameter Model, without C (choice perseveration) but with xi (noise). Single learning rate both for R and P..
It has the following parameters: A (learning rate), R (reward sensitivity), P (punishment sensitivity), xi (noise).
-  Task: N-Armed Bandit Task 
-  Model: 4 Parameter Model, without C (choice perseveration) but with xi (noise). Single learning rate both for R and P. (Aylward et al., 2018) 
Usage
banditNarm_singleA_lapse(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the N-Armed Bandit Task, there should be 4 columns of data with the
labels "subjID", "choice", "gain", "loss". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on the given trial: 1, 2, 3, ... N. 
- gain
- Floating point value representing the amount of currency won on the given trial (e.g. 50, 100). 
- loss
- Floating point value representing the amount of currency lost on the given trial (e.g. 0, -50). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Cheol Jun Cho <cjfwndnsl@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"banditNarm_singleA_lapse"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Aylward, Valton, Ahn, Bond, Dayan, Roiser, & Robinson (2018) Altered decision-making under uncertainty in unmedicated mood and anxiety disorders. PsyArxiv. 10.31234/osf.io/k5b8m
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- banditNarm_singleA_lapse(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- banditNarm_singleA_lapse(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Exponential-Weight Mean-Variance Model
Description
Hierarchical Bayesian Modeling of the Balloon Analogue Risk Task using Exponential-Weight Mean-Variance Model.
It has the following parameters: phi (prior belief of burst), eta (updating exponent), rho (risk preference), tau (inverse temperature), lambda (loss aversion).
-  Task: Balloon Analogue Risk Task 
-  Model: Exponential-Weight Mean-Variance Model (Park et al., 2020) 
Usage
bart_ewmv(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Balloon Analogue Risk Task, there should be 3 columns of data with the
labels "subjID", "pumps", "explosion". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- pumps
- The number of pumps. 
- explosion
- 0: intact, 1: burst 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Harhim Park <hrpark12@gmail.com>, Jaeyeong Yang <jaeyeong.yang1125@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"bart_ewmv"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Park, H., Yang, J., Vassileva, J., & Ahn, W. (2020). The Exponential-Weight Mean-Variance Model: A novel computational model for the Balloon Analogue Risk Task. https://doi.org/10.31234/osf.io/sdzj4
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- bart_ewmv(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- bart_ewmv(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Re-parameterized version of BART model with 4 parameters
Description
Hierarchical Bayesian Modeling of the Balloon Analogue Risk Task using Re-parameterized version of BART model with 4 parameters.
It has the following parameters: phi (prior belief of balloon not bursting), eta (updating rate), gam (risk-taking parameter), tau (inverse temperature).
-  Task: Balloon Analogue Risk Task 
-  Model: Re-parameterized version of BART model with 4 parameters (van Ravenzwaaij et al., 2011) 
Usage
bart_par4(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Balloon Analogue Risk Task, there should be 3 columns of data with the
labels "subjID", "pumps", "explosion". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- pumps
- The number of pumps. 
- explosion
- 0: intact, 1: burst 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Harhim Park <hrpark12@gmail.com>, Jaeyeong Yang <jaeyeong.yang1125@gmail.com>, Ayoung Lee <aylee2008@naver.com>, Jeongbin Oh <ows0104@gmail.com>, Jiyoon Lee <nicole.lee2001@gmail.com>, Junha Jang <andy627robo@naver.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"bart_par4"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
van Ravenzwaaij, D., Dutilh, G., & Wagenmakers, E. J. (2011). Cognitive model decomposition of the BART: Assessment and application. Journal of Mathematical Psychology, 55(1), 94-105.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- bart_par4(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- bart_par4(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Cumulative Model
Description
Hierarchical Bayesian Modeling of the Cambridge Gambling Task using Cumulative Model.
It has the following parameters: alpha (probability distortion), c (color bias), rho (relative loss sensitivity), beta (discounting rate), gamma (choice sensitivity).
-  Task: Cambridge Gambling Task (Rogers et al., 1999) 
-  Model: Cumulative Model 
Usage
cgt_cm(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Cambridge Gambling Task, there should be 7 columns of data with the
labels "subjID", "gamble_type", "percentage_staked", "trial_initial_points", "assessment_stage", "red_chosen", "n_red_boxes". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- gamble_type
- Integer value representng whether the bets on the current trial were presented in descending (0) or ascending (1) order. 
- percentage_staked
- Integer value representing the bet percentage (not proportion) selected on the current trial: 5, 25, 50, 75, or 95. 
- trial_initial_points
- Floating point value representing the number of points that the subject has at the start of the current trial (e.g., 100, 150, etc.). 
- assessment_stage
- Integer value representing whether the current trial is a practice trial (0) or a test trial (1). Only test trials are used for model fitting. 
- red_chosen
- Integer value representing whether the red color was chosen (1) versus the blue color (0). 
- n_red_boxes
- Integer value representing the number of red boxes shown on the current trial: 1, 2, 3,..., or 9. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Nathaniel Haines <haines.175@osu.edu>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"cgt_cm"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Rogers, R. D., Everitt, B. J., Baldacchino, A., Blackshaw, A. J., Swainson, R., Wynne, K., Baker, N. B., Hunter, J., Carthy, T., London, M., Deakin, J. F. W., Sahakian, B. J., Robbins, T. W. (1999). Dissociable deficits in the decision-making cognition of chronic amphetamine abusers, opiate abusers, patients with focal damage to prefrontal cortex, and tryptophan-depleted normal volunteers: evidence for monoaminergic mechanisms. Neuropsychopharmacology, 20, 322–339.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- cgt_cm(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- cgt_cm(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Drift Diffusion Model
Description
Hierarchical Bayesian Modeling of the Choice Reaction Time Task using Drift Diffusion Model.
It has the following parameters: alpha (boundary separation), beta (bias), delta (drift rate), tau (non-decision time).
-  Task: Choice Reaction Time Task 
-  Model: Drift Diffusion Model (Ratcliff, 1978) 
Usage
choiceRT_ddm(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Choice Reaction Time Task, there should be 3 columns of data with the
labels "subjID", "choice", "RT". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Choice made for the current trial, coded as 1/2 to indicate lower/upper boundary or left/right choices (e.g., 1 1 1 2 1 2). 
- RT
- Choice reaction time for the current trial, in **seconds** (e.g., 0.435 0.383 0.314 0.309, etc.). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"choiceRT_ddm"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Ratcliff, R. (1978). A theory of memory retrieval. Psychological Review, 85(2), 59-108. https://doi.org/10.1037/0033-295X.85.2.59
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- choiceRT_ddm(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- choiceRT_ddm(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Drift Diffusion Model
Description
Individual Bayesian Modeling of the Choice Reaction Time Task using Drift Diffusion Model.
It has the following parameters: alpha (boundary separation), beta (bias), delta (drift rate), tau (non-decision time).
-  Task: Choice Reaction Time Task 
-  Model: Drift Diffusion Model (Ratcliff, 1978) 
Usage
choiceRT_ddm_single(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Choice Reaction Time Task, there should be 3 columns of data with the
labels "subjID", "choice", "RT". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Choice made for the current trial, coded as 1/2 to indicate lower/upper boundary or left/right choices (e.g., 1 1 1 2 1 2). 
- RT
- Choice reaction time for the current trial, in **seconds** (e.g., 0.435 0.383 0.314 0.309, etc.). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"choiceRT_ddm_single"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Ratcliff, R. (1978). A theory of memory retrieval. Psychological Review, 85(2), 59-108. https://doi.org/10.1037/0033-295X.85.2.59
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- choiceRT_ddm_single(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- choiceRT_ddm_single(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Choice Reaction Time task, linear ballistic accumulator modeling
Description
Hierarchical Bayesian Modeling of choice/reaction time data with the following parameters: "d" (boundary), "A" (upper boundary of starting point), "v" (drift rate), "tau" (non-decision time). The model published in Annis, J., Miller, B. J., & Palmeri, T. J. (2016). Bayesian inference with Stan: A tutorial on adding custom distributions. Behavior research methods, 1-24.
MODEL: Brown and Heathcote LBA model - multiple subjects. Note that this implementation estimates a different drift rate for each condition-choice pair. For example, if the task involves deciding between two stimuli on each trial, and there are two different conditions throughout the task (e.g. speed versus accuracy), a total of 4 (2 stimuli by 2 conditions) drift rates will be estimated. For details on implementation, see Annis et al. (2016).
Usage
choiceRT_lba(
  data = "choose",
  niter = 3000,
  nwarmup = 1000,
  nchain = 2,
  ncore = 2,
  nthin = 1,
  inits = "random",
  indPars = "mean",
  saveDir = NULL,
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10
)
Arguments
| data | A .txt file containing the data to be modeled. Data columns should be labelled as follows: "subjID", "choice", "RT", and "condition". See Details below for more information. | 
| 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 ( | 
| 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 | Include trial-level posterior predictive simulations in model output (may greatly increase file size). Defaults to FALSE. | 
| 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 Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps that the MCMC sampler can take on each new iteration. See Details below. | 
Details
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 for 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 four columns of data with the labels "subjID", "choice", "RT", and "condition". 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. (e.g., 1 1 3 2 1 2). 
- "RT"
- A floating number the choice reaction time in seconds. (e.g., 0.435 0.383 0.314 0.309, etc.). 
- "condition"
- An integer representing the condition of the current trail (e.g., 1 2 3 4). 
*Note: The data.txt file may contain other columns of data (e.g. "Reaction_Time", "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.
Value
modelData  A class 'hBayesDM' object with the following components:
- model
- Character string with the name of the model ( - "choiceRT_lba").
- allIndPars
- 'data.frame'containing the summarized parameter values (as specified by- 'indPars') for each 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.
References
Brown, S. D., & Heathcote, A. (2008). The simplest complete model of choice response time: Linear ballistic accumulation. Cognitive Psychology, 57(3), 153-178. http://doi.org/10.1016/j.cogpsych.2007.12.002
Annis, J., Miller, B. J., & Palmeri, T. J. (2016). Bayesian inference with Stan: A tutorial on adding custom distributions. Behavior research methods, 1-24.
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.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model and store results in "output"
output <- choiceRT_lba(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)
Choice Reaction Time task, linear ballistic accumulator modeling
Description
Individual Bayesian Modeling of choice/reaction time data with the following parameters: "d" (boundary), "A" (upper boundary of starting point), "v" (drift rate), "tau" (non-decision time). The model published in Annis, J., Miller, B. J., & Palmeri, T. J. (2016). Bayesian inference with Stan: A tutorial on adding custom distributions. Behavior research methods, 1-24.
MODEL: Brown and Heathcote LBA model - single subject. Note that this implementation estimates a different drift rate for each condition-choice pair. For example, if the task involves deciding between two stimuli on each trial, and there are two different conditions throughout the task (e.g. speed versus accuracy), a total of 4 (2 stimuli by 2 conditions) drift rates will be estimated. For details on implementation, see Annis et al. (2016).
Usage
choiceRT_lba_single(
  data = "choose",
  niter = 3000,
  nwarmup = 1000,
  nchain = 2,
  ncore = 2,
  nthin = 1,
  inits = "random",
  indPars = "mean",
  saveDir = NULL,
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10
)
Arguments
| data | A .txt file containing the data to be modeled. Data columns should be labelled as follows: "subjID", "choice", "RT", and "condition". See Details below for more information. | 
| 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 ( | 
| 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 | Include trial-level posterior predictive simulations in model output (may greatly increase file size). Defaults to FALSE. | 
| 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 Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps that the MCMC sampler can take on each new iteration. See Details below. | 
Details
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 all subjects 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 four columns of data with the labels "choice", "RT", and "condition". 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. (e.g., 1 1 3 2 1 2). 
- "RT"
- A floating number the choice reaction time in seconds. (e.g., 0.435 0.383 0.314 0.309, etc.). 
- "condition"
- An integer representing the condition of the current trail (e.g., 1 2 3 4). 
*Note: The data.txt file may contain other columns of data (e.g. "Reaction_Time", "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.
Value
modelData  A class 'hBayesDM' object with the following components:
- model
- Character string with the name of the model ( - "choiceRT_lba_single").
- allIndPars
- 'data.frame'containing the summarized parameter values (as specified by- 'indPars') for each 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.
References
Brown, S. D., & Heathcote, A. (2008). The simplest complete model of choice response time: Linear ballistic accumulation. Cognitive Psychology, 57(3), 153-178. http://doi.org/10.1016/j.cogpsych.2007.12.002
Annis, J., Miller, B. J., & Palmeri, T. J. (2016). Bayesian inference with Stan: A tutorial on adding custom distributions. Behavior research methods, 1-24.
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.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model and store results in "output"
output <- choiceRT_lba_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)
Exponential Subjective Value Model
Description
Hierarchical Bayesian Modeling of the Choice Under Risk and Ambiguity Task using Exponential Subjective Value Model.
It has the following parameters: alpha (risk attitude), beta (ambiguity attitude), gamma (inverse temperature).
-  Task: Choice Under Risk and Ambiguity Task 
-  Model: Exponential Subjective Value Model (Hsu et al., 2005) 
Usage
cra_exp(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Choice Under Risk and Ambiguity Task, there should be 6 columns of data with the
labels "subjID", "prob", "ambig", "reward_var", "reward_fix", "choice". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- prob
- Objective probability of the variable lottery. 
- ambig
- Ambiguity level of the variable lottery (0 for risky lottery; greater than 0 for ambiguous lottery). 
- reward_var
- Amount of reward in variable lottery. Assumed to be greater than zero. 
- reward_fix
- Amount of reward in fixed lottery. Assumed to be greater than zero. 
- choice
- If the variable lottery was selected, choice == 1; otherwise choice == 0. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Jaeyeong Yang <jaeyeong.yang1125@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"cra_exp"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Hsu, M., Bhatt, M., Adolphs, R., Tranel, D., & Camerer, C. F. (2005). Neural systems responding to degrees of uncertainty in human decision-making. Science, 310(5754), 1680-1683. https://doi.org/10.1126/science.1115327
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- cra_exp(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- cra_exp(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Linear Subjective Value Model
Description
Hierarchical Bayesian Modeling of the Choice Under Risk and Ambiguity Task using Linear Subjective Value Model.
It has the following parameters: alpha (risk attitude), beta (ambiguity attitude), gamma (inverse temperature).
-  Task: Choice Under Risk and Ambiguity Task 
-  Model: Linear Subjective Value Model (Levy et al., 2010) 
Usage
cra_linear(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Choice Under Risk and Ambiguity Task, there should be 6 columns of data with the
labels "subjID", "prob", "ambig", "reward_var", "reward_fix", "choice". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- prob
- Objective probability of the variable lottery. 
- ambig
- Ambiguity level of the variable lottery (0 for risky lottery; greater than 0 for ambiguous lottery). 
- reward_var
- Amount of reward in variable lottery. Assumed to be greater than zero. 
- reward_fix
- Amount of reward in fixed lottery. Assumed to be greater than zero. 
- choice
- If the variable lottery was selected, choice == 1; otherwise choice == 0. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Jaeyeong Yang <jaeyeong.yang1125@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"cra_linear"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Levy, I., Snell, J., Nelson, A. J., Rustichini, A., & Glimcher, P. W. (2010). Neural representation of subjective value under risk and ambiguity. Journal of Neurophysiology, 103(2), 1036-1047.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- cra_linear(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- cra_linear(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Probability Weight Function
Description
Hierarchical Bayesian Modeling of the Description Based Decison Making Task using Probability Weight Function.
It has the following parameters: tau (probability weight function), rho (subject utility function), lambda (loss aversion parameter), beta (inverse softmax temperature).
-  Task: Description Based Decison Making Task 
-  Model: Probability Weight Function (Erev et al., 2010; Hertwig et al., 2004; Jessup et al., 2008) 
Usage
dbdm_prob_weight(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Description Based Decison Making Task, there should be 8 columns of data with the
labels "subjID", "opt1hprob", "opt2hprob", "opt1hval", "opt1lval", "opt2hval", "opt2lval", "choice". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- opt1hprob
- Possiblity of getting higher value of outcome(opt1hval) when choosing option 1. 
- opt2hprob
- Possiblity of getting higher value of outcome(opt2hval) when choosing option 2. 
- opt1hval
- Possible (with opt1hprob probability) outcome of option 1. 
- opt1lval
- Possible (with (1 - opt1hprob) probability) outcome of option 1. 
- opt2hval
- Possible (with opt2hprob probability) outcome of option 2. 
- opt2lval
- Possible (with (1 - opt2hprob) probability) outcome of option 2. 
- choice
- If option 1 was selected, choice == 1; else if option 2 was selected, choice == 2. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Yoonseo Zoh <zohyos7@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"dbdm_prob_weight"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Erev, I., Ert, E., Roth, A. E., Haruvy, E., Herzog, S. M., Hau, R., ... & Lebiere, C. (2010). A choice prediction competition: Choices from experience and from description. Journal of Behavioral Decision Making, 23(1), 15-47.
Hertwig, R., Barron, G., Weber, E. U., & Erev, I. (2004). Decisions from experience and the effect of rare events in risky choice. Psychological science, 15(8), 534-539.
Jessup, R. K., Bishara, A. J., & Busemeyer, J. R. (2008). Feedback produces divergence from prospect theory in descriptive choice. Psychological Science, 19(10), 1015-1022.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- dbdm_prob_weight(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- dbdm_prob_weight(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Constant-Sensitivity (CS) Model
Description
Hierarchical Bayesian Modeling of the Delay Discounting Task using Constant-Sensitivity (CS) Model.
It has the following parameters: r (exponential discounting rate), s (impatience), beta (inverse temperature).
-  Task: Delay Discounting Task 
-  Model: Constant-Sensitivity (CS) Model (Ebert et al., 2007) 
Usage
dd_cs(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Delay Discounting Task, there should be 6 columns of data with the
labels "subjID", "delay_later", "amount_later", "delay_sooner", "amount_sooner", "choice". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- delay_later
- An integer representing the delayed days for the later option (e.g. 1, 6, 28). 
- amount_later
- A floating point number representing the amount for the later option (e.g. 10.5, 13.4, 30.9). 
- delay_sooner
- An integer representing the delayed days for the sooner option (e.g. 0). 
- amount_sooner
- A floating point number representing the amount for the sooner option (e.g. 10). 
- choice
- If amount_later was selected, choice == 1; else if amount_sooner was selected, choice == 0. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"dd_cs"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Ebert, J. E. J., & Prelec, D. (2007). The Fragility of Time: Time-Insensitivity and Valuation of the Near and Far Future. Management Science. https://doi.org/10.1287/mnsc.1060.0671
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- dd_cs(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- dd_cs(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Constant-Sensitivity (CS) Model
Description
Individual Bayesian Modeling of the Delay Discounting Task using Constant-Sensitivity (CS) Model.
It has the following parameters: r (exponential discounting rate), s (impatience), beta (inverse temperature).
-  Task: Delay Discounting Task 
-  Model: Constant-Sensitivity (CS) Model (Ebert et al., 2007) 
Usage
dd_cs_single(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Delay Discounting Task, there should be 6 columns of data with the
labels "subjID", "delay_later", "amount_later", "delay_sooner", "amount_sooner", "choice". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- delay_later
- An integer representing the delayed days for the later option (e.g. 1, 6, 28). 
- amount_later
- A floating point number representing the amount for the later option (e.g. 10.5, 13.4, 30.9). 
- delay_sooner
- An integer representing the delayed days for the sooner option (e.g. 0). 
- amount_sooner
- A floating point number representing the amount for the sooner option (e.g. 10). 
- choice
- If amount_later was selected, choice == 1; else if amount_sooner was selected, choice == 0. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"dd_cs_single"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Ebert, J. E. J., & Prelec, D. (2007). The Fragility of Time: Time-Insensitivity and Valuation of the Near and Far Future. Management Science. https://doi.org/10.1287/mnsc.1060.0671
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- dd_cs_single(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- dd_cs_single(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Exponential Model
Description
Hierarchical Bayesian Modeling of the Delay Discounting Task using Exponential Model.
It has the following parameters: r (exponential discounting rate), beta (inverse temperature).
-  Task: Delay Discounting Task 
-  Model: Exponential Model (Samuelson, 1937) 
Usage
dd_exp(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Delay Discounting Task, there should be 6 columns of data with the
labels "subjID", "delay_later", "amount_later", "delay_sooner", "amount_sooner", "choice". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- delay_later
- An integer representing the delayed days for the later option (e.g. 1, 6, 28). 
- amount_later
- A floating point number representing the amount for the later option (e.g. 10.5, 13.4, 30.9). 
- delay_sooner
- An integer representing the delayed days for the sooner option (e.g. 0). 
- amount_sooner
- A floating point number representing the amount for the sooner option (e.g. 10). 
- choice
- If amount_later was selected, choice == 1; else if amount_sooner was selected, choice == 0. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"dd_exp"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Samuelson, P. A. (1937). A Note on Measurement of Utility. The Review of Economic Studies, 4(2), 155. https://doi.org/10.2307/2967612
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- dd_exp(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- dd_exp(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Hyperbolic Model
Description
Hierarchical Bayesian Modeling of the Delay Discounting Task using Hyperbolic Model.
It has the following parameters: k (discounting rate), beta (inverse temperature).
-  Task: Delay Discounting Task 
-  Model: Hyperbolic Model (Mazur, 1987) 
Usage
dd_hyperbolic(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Delay Discounting Task, there should be 6 columns of data with the
labels "subjID", "delay_later", "amount_later", "delay_sooner", "amount_sooner", "choice". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- delay_later
- An integer representing the delayed days for the later option (e.g. 1, 6, 28). 
- amount_later
- A floating point number representing the amount for the later option (e.g. 10.5, 13.4, 30.9). 
- delay_sooner
- An integer representing the delayed days for the sooner option (e.g. 0). 
- amount_sooner
- A floating point number representing the amount for the sooner option (e.g. 10). 
- choice
- If amount_later was selected, choice == 1; else if amount_sooner was selected, choice == 0. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"dd_hyperbolic"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Mazur, J. E. (1987). An adjustment procedure for studying delayed reinforcement.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- dd_hyperbolic(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- dd_hyperbolic(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Hyperbolic Model
Description
Individual Bayesian Modeling of the Delay Discounting Task using Hyperbolic Model.
It has the following parameters: k (discounting rate), beta (inverse temperature).
-  Task: Delay Discounting Task 
-  Model: Hyperbolic Model (Mazur, 1987) 
Usage
dd_hyperbolic_single(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Delay Discounting Task, there should be 6 columns of data with the
labels "subjID", "delay_later", "amount_later", "delay_sooner", "amount_sooner", "choice". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- delay_later
- An integer representing the delayed days for the later option (e.g. 1, 6, 28). 
- amount_later
- A floating point number representing the amount for the later option (e.g. 10.5, 13.4, 30.9). 
- delay_sooner
- An integer representing the delayed days for the sooner option (e.g. 0). 
- amount_sooner
- A floating point number representing the amount for the sooner option (e.g. 10). 
- choice
- If amount_later was selected, choice == 1; else if amount_sooner was selected, choice == 0. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"dd_hyperbolic_single"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Mazur, J. E. (1987). An adjustment procedure for studying delayed reinforcement.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- dd_hyperbolic_single(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- dd_hyperbolic_single(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Function to estimate mode of MCMC samples
Description
Based on codes from 'http://stackoverflow.com/questions/2547402/is-there-a-built-in-function-for-finding-the-mode' see the comment by Rasmus Baath
Usage
estimate_mode(x)
Arguments
| x | MCMC samples or some numeric or array values. | 
Extract Model Comparison Estimates
Description
Extract Model Comparison Estimates
Usage
extract_ic(model_data = NULL, ic = "looic", ncore = 2)
Arguments
| model_data | Object returned by  | 
| ic | Information Criterion. 'looic', 'waic', or 'both' | 
| ncore | Number of cores to use when computing LOOIC | 
Value
IC Leave-One-Out and/or Watanabe-Akaike information criterion estimates.
Examples
## Not run: 
library(hBayesDM)
output = bandit2arm_delta("example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 1)
# To show the LOOIC model fit estimates (a detailed report; c)
extract_ic(output)
# To show the WAIC model fit estimates
extract_ic(output, ic = "waic")
## End(Not run)
RW + noise
Description
Hierarchical Bayesian Modeling of the Orthogonalized Go/Nogo Task using RW + noise.
It has the following parameters: xi (noise), ep (learning rate), rho (effective size).
-  Task: Orthogonalized Go/Nogo Task 
-  Model: RW + noise (Guitart-Masip et al., 2012) 
Usage
gng_m1(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Orthogonalized Go/Nogo Task, there should be 4 columns of data with the
labels "subjID", "cue", "keyPressed", "outcome". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- cue
- Nominal integer representing the cue shown for that trial: 1, 2, 3, or 4. 
- keyPressed
- Binary value representing the subject's response for that trial (where Press == 1; No press == 0). 
- outcome
- Ternary value representing the outcome of that trial (where Positive feedback == 1; Neutral feedback == 0; Negative feedback == -1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"gng_m1"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Guitart-Masip, M., Huys, Q. J. M., Fuentemilla, L., Dayan, P., Duzel, E., & Dolan, R. J. (2012). Go and no-go learning in reward and punishment: Interactions between affect and effect. Neuroimage, 62(1), 154-166. https://doi.org/10.1016/j.neuroimage.2012.04.024
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- gng_m1(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- gng_m1(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
RW + noise + bias
Description
Hierarchical Bayesian Modeling of the Orthogonalized Go/Nogo Task using RW + noise + bias.
It has the following parameters: xi (noise), ep (learning rate), b (action bias), rho (effective size).
-  Task: Orthogonalized Go/Nogo Task 
-  Model: RW + noise + bias (Guitart-Masip et al., 2012) 
Usage
gng_m2(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Orthogonalized Go/Nogo Task, there should be 4 columns of data with the
labels "subjID", "cue", "keyPressed", "outcome". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- cue
- Nominal integer representing the cue shown for that trial: 1, 2, 3, or 4. 
- keyPressed
- Binary value representing the subject's response for that trial (where Press == 1; No press == 0). 
- outcome
- Ternary value representing the outcome of that trial (where Positive feedback == 1; Neutral feedback == 0; Negative feedback == -1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"gng_m2"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Guitart-Masip, M., Huys, Q. J. M., Fuentemilla, L., Dayan, P., Duzel, E., & Dolan, R. J. (2012). Go and no-go learning in reward and punishment: Interactions between affect and effect. Neuroimage, 62(1), 154-166. https://doi.org/10.1016/j.neuroimage.2012.04.024
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- gng_m2(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- gng_m2(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
RW + noise + bias + pi
Description
Hierarchical Bayesian Modeling of the Orthogonalized Go/Nogo Task using RW + noise + bias + pi.
It has the following parameters: xi (noise), ep (learning rate), b (action bias), pi (Pavlovian bias), rho (effective size).
-  Task: Orthogonalized Go/Nogo Task 
-  Model: RW + noise + bias + pi (Guitart-Masip et al., 2012) 
Usage
gng_m3(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Orthogonalized Go/Nogo Task, there should be 4 columns of data with the
labels "subjID", "cue", "keyPressed", "outcome". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- cue
- Nominal integer representing the cue shown for that trial: 1, 2, 3, or 4. 
- keyPressed
- Binary value representing the subject's response for that trial (where Press == 1; No press == 0). 
- outcome
- Ternary value representing the outcome of that trial (where Positive feedback == 1; Neutral feedback == 0; Negative feedback == -1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"gng_m3"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Guitart-Masip, M., Huys, Q. J. M., Fuentemilla, L., Dayan, P., Duzel, E., & Dolan, R. J. (2012). Go and no-go learning in reward and punishment: Interactions between affect and effect. Neuroimage, 62(1), 154-166. https://doi.org/10.1016/j.neuroimage.2012.04.024
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- gng_m3(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- gng_m3(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
RW (rew/pun) + noise + bias + pi
Description
Hierarchical Bayesian Modeling of the Orthogonalized Go/Nogo Task using RW (rew/pun) + noise + bias + pi.
It has the following parameters: xi (noise), ep (learning rate), b (action bias), pi (Pavlovian bias), rhoRew (reward sensitivity), rhoPun (punishment sensitivity).
-  Task: Orthogonalized Go/Nogo Task 
-  Model: RW (rew/pun) + noise + bias + pi (Cavanagh et al., 2013) 
Usage
gng_m4(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Orthogonalized Go/Nogo Task, there should be 4 columns of data with the
labels "subjID", "cue", "keyPressed", "outcome". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- cue
- Nominal integer representing the cue shown for that trial: 1, 2, 3, or 4. 
- keyPressed
- Binary value representing the subject's response for that trial (where Press == 1; No press == 0). 
- outcome
- Ternary value representing the outcome of that trial (where Positive feedback == 1; Neutral feedback == 0; Negative feedback == -1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"gng_m4"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Cavanagh, J. F., Eisenberg, I., Guitart-Masip, M., Huys, Q., & Frank, M. J. (2013). Frontal Theta Overrides Pavlovian Learning Biases. Journal of Neuroscience, 33(19), 8541-8548. https://doi.org/10.1523/JNEUROSCI.5754-12.2013
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- gng_m4(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- gng_m4(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
hBayesDM Model Base Function
Description
The base function from which all hBayesDM model functions are created.
Contributor: Jethro Lee
Usage
hBayesDM_model(
  task_name,
  model_name,
  model_type = "",
  data_columns,
  parameters,
  regressors = NULL,
  postpreds = "y_pred",
  stanmodel_arg = NULL,
  preprocess_func
)
Arguments
| task_name | Character value for name of task. E.g.  | 
| model_name | Character value for name of model. E.g.  | 
| model_type | Character value for modeling type:  | 
| data_columns | Character vector of necessary column names for the data. E.g.
 | 
| parameters | List of parameters, with information about their lower bound, plausible value,
upper bound. E.g.  | 
| regressors | List of regressors, with information about their extracted dimensions. E.g.
 | 
| postpreds | Character vector of name(s) for the trial-level posterior predictive
simulations. Default is  | 
| stanmodel_arg | Leave as  | 
| preprocess_func | Function to preprocess the raw data before it gets passed to Stan. Takes
(at least) two arguments: a data.table object  | 
Details
task_name: Typically same task models share the same data column requirements.
model_name: Typically different models are distinguished by their different list of parameters.
model_type is one of the following three:
- ""
- Modeling of multiple subjects. (Default hierarchical Bayesian analysis.) 
- "single"
- Modeling of a single subject. 
- "multipleB"
- Modeling of multiple subjects, where multiple blocks exist within each subject. 
data_columns must be the entirety of necessary data columns used at some point in the R
or Stan code. I.e. "subjID" must always be included. In the case of 'multipleB' type
models, "block" should also be included as well.
parameters is a list object, whose keys are the parameters of this model. Each parameter key must be assigned a numeric vector holding 3 elements: the parameter's lower bound, plausible value, and upper bound.
regressors is a list object, whose keys are the model-based regressors of this model.
Each regressor key must be assigned a numeric value indicating the number of dimensions its
data will be extracted as. If model-based regressors are not available for this model, this
argument should just be NULL.
postpreds defaults to "y_pred", but any other character vector holding
appropriate names is possible (c.f. Two-Step Task models). If posterior predictions are not yet
available for this model, this argument should just be NULL.
stanmodel_arg can be used by developers, during the developmental stage of creating a
new model function. If this argument is passed a character value, the Stan file with the
corresponding name will be used for model fitting. If this argument is passed a
stanmodel object, that stanmodel object will be used for model fitting. When
creation of the model function is complete, this argument should just be left as NULL.
preprocess_func is the part of the code that is specific to the model, and is thus
written in the specific model R file.
Arguments for this function are:
- raw_data
- A data.table that holds the raw user data, which was read by using - fread.
- general_info
- A list that holds the general informations about the raw data, i.e. - subjs,- n_subj,- t_subjs,- t_max,- b_subjs,- b_max.
- ...
- Optional additional argument(s) that specific model functions may want to include. Examples of such additional arguments currently being used in hBayesDM models are: - RTbound(choiceRT_ddm models),- payscale(igt models), and- trans_prob(ts models).
Return value for this function should be:
- data_list
- A list with appropriately named keys (as required by the model Stan file), holding the fully preprocessed user data. 
NOTE: Syntax for data.table slightly differs from that of data.frame. If you want to use
raw_data as a data.frame when writing the preprocess_func, simply begin with the
line: raw_data <- as.data.frame(raw_data).
NOTE: Because of allowing case & underscore insensitive column names in user data,
raw_data columns must now be referenced by their lowercase non-underscored versions,
e.g. "subjid", within the code of the preprocess function.
Value
A specific hBayesDM model function.
Outcome-Representation Learning Model
Description
Hierarchical Bayesian Modeling of the Iowa Gambling Task using Outcome-Representation Learning Model.
It has the following parameters: Arew (reward learning rate), Apun (punishment learning rate), K (perseverance decay), betaF (outcome frequency weight), betaP (perseverance weight).
-  Task: Iowa Gambling Task (Ahn et al., 2008) 
-  Model: Outcome-Representation Learning Model (Haines et al., 2018) 
Usage
igt_orl(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Iowa Gambling Task, there should be 4 columns of data with the
labels "subjID", "choice", "gain", "loss". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer indicating which deck was chosen on that trial (where A==1, B==2, C==3, and D==4). 
- gain
- Floating point value representing the amount of currency won on that trial (e.g. 50, 100). 
- loss
- Floating point value representing the amount of currency lost on that trial (e.g. 0, -50). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Nate Haines <haines.175@osu.edu>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"igt_orl"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Ahn, W. Y., Busemeyer, J. R., & Wagenmakers, E. J. (2008). Comparison of decision learning models using the generalization criterion method. Cognitive Science, 32(8), 1376-1402. https://doi.org/10.1080/03640210802352992
Haines, N., Vassileva, J., & Ahn, W.-Y. (2018). The Outcome-Representation Learning Model: A Novel Reinforcement Learning Model of the Iowa Gambling Task. Cognitive Science. https://doi.org/10.1111/cogs.12688
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- igt_orl(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- igt_orl(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Prospect Valence Learning (PVL) Decay-RI
Description
Hierarchical Bayesian Modeling of the Iowa Gambling Task using Prospect Valence Learning (PVL) Decay-RI.
It has the following parameters: A (decay rate), alpha (outcome sensitivity), cons (response consistency), lambda (loss aversion).
-  Task: Iowa Gambling Task (Ahn et al., 2008) 
-  Model: Prospect Valence Learning (PVL) Decay-RI (Ahn et al., 2014) 
Usage
igt_pvl_decay(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Iowa Gambling Task, there should be 4 columns of data with the
labels "subjID", "choice", "gain", "loss". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer indicating which deck was chosen on that trial (where A==1, B==2, C==3, and D==4). 
- gain
- Floating point value representing the amount of currency won on that trial (e.g. 50, 100). 
- loss
- Floating point value representing the amount of currency lost on that trial (e.g. 0, -50). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"igt_pvl_decay"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Ahn, W. Y., Busemeyer, J. R., & Wagenmakers, E. J. (2008). Comparison of decision learning models using the generalization criterion method. Cognitive Science, 32(8), 1376-1402. https://doi.org/10.1080/03640210802352992
Ahn, W.-Y., Vasilev, G., Lee, S.-H., Busemeyer, J. R., Kruschke, J. K., Bechara, A., & Vassileva, J. (2014). Decision-making in stimulant and opiate addicts in protracted abstinence: evidence from computational modeling with pure users. Frontiers in Psychology, 5, 1376. https://doi.org/10.3389/fpsyg.2014.00849
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- igt_pvl_decay(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- igt_pvl_decay(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Prospect Valence Learning (PVL) Delta
Description
Hierarchical Bayesian Modeling of the Iowa Gambling Task using Prospect Valence Learning (PVL) Delta.
It has the following parameters: A (learning rate), alpha (outcome sensitivity), cons (response consistency), lambda (loss aversion).
-  Task: Iowa Gambling Task (Ahn et al., 2008) 
-  Model: Prospect Valence Learning (PVL) Delta (Ahn et al., 2008) 
Usage
igt_pvl_delta(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Iowa Gambling Task, there should be 4 columns of data with the
labels "subjID", "choice", "gain", "loss". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer indicating which deck was chosen on that trial (where A==1, B==2, C==3, and D==4). 
- gain
- Floating point value representing the amount of currency won on that trial (e.g. 50, 100). 
- loss
- Floating point value representing the amount of currency lost on that trial (e.g. 0, -50). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"igt_pvl_delta"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Ahn, W. Y., Busemeyer, J. R., & Wagenmakers, E. J. (2008). Comparison of decision learning models using the generalization criterion method. Cognitive Science, 32(8), 1376-1402. https://doi.org/10.1080/03640210802352992
Ahn, W. Y., Busemeyer, J. R., & Wagenmakers, E. J. (2008). Comparison of decision learning models using the generalization criterion method. Cognitive Science, 32(8), 1376-1402. https://doi.org/10.1080/03640210802352992
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- igt_pvl_delta(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- igt_pvl_delta(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Value-Plus-Perseverance
Description
Hierarchical Bayesian Modeling of the Iowa Gambling Task using Value-Plus-Perseverance.
It has the following parameters: A (learning rate), alpha (outcome sensitivity), cons (response consistency), lambda (loss aversion), epP (gain impact), epN (loss impact), K (decay rate), w (RL weight).
-  Task: Iowa Gambling Task (Ahn et al., 2008) 
-  Model: Value-Plus-Perseverance (Worthy et al., 2013) 
Usage
igt_vpp(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Iowa Gambling Task, there should be 4 columns of data with the
labels "subjID", "choice", "gain", "loss". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer indicating which deck was chosen on that trial (where A==1, B==2, C==3, and D==4). 
- gain
- Floating point value representing the amount of currency won on that trial (e.g. 50, 100). 
- loss
- Floating point value representing the amount of currency lost on that trial (e.g. 0, -50). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"igt_vpp"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Ahn, W. Y., Busemeyer, J. R., & Wagenmakers, E. J. (2008). Comparison of decision learning models using the generalization criterion method. Cognitive Science, 32(8), 1376-1402. https://doi.org/10.1080/03640210802352992
Worthy, D. A., & Todd Maddox, W. (2013). A comparison model of reinforcement-learning and win-stay-lose-shift decision-making processes: A tribute to W.K. Estes. Journal of Mathematical Psychology, 59, 41-49. https://doi.org/10.1016/j.jmp.2013.10.001
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- igt_vpp(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- igt_vpp(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Function to plot multiple figures
Description
Plots multiple figures Based on codes from 'http://www.cookbook-r.com/Graphs/Multiple_graphs_on_one_page_(ggplot2)/'
Usage
multiplot(..., plots = NULL, cols = NULL)
Arguments
| ... | Plot objects | 
| plots | List containing plot objects | 
| cols | Number of columns within the multi-figure plot | 
Other-Conferred Utility (OCU) Model
Description
Hierarchical Bayesian Modeling of the Peer Influence Task using Other-Conferred Utility (OCU) Model.
It has the following parameters: rho (risk preference), tau (inverse temperature), ocu (other-conferred utility).
-  Task: Peer Influence Task (Chung et al., 2015) 
-  Model: Other-Conferred Utility (OCU) Model 
Usage
peer_ocu(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Peer Influence Task, there should be 8 columns of data with the
labels "subjID", "condition", "p_gamble", "safe_Hpayoff", "safe_Lpayoff", "risky_Hpayoff", "risky_Lpayoff", "choice". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- condition
- 0: solo, 1: info (safe/safe), 2: info (mix), 3: info (risky/risky). 
- p_gamble
- Probability of receiving a high payoff (same for both options). 
- safe_Hpayoff
- High payoff of the safe option. 
- safe_Lpayoff
- Low payoff of the safe option. 
- risky_Hpayoff
- High payoff of the risky option. 
- risky_Lpayoff
- Low payoff of the risky option. 
- choice
- Which option was chosen? 0: safe, 1: risky. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Harhim Park <hrpark12@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"peer_ocu"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Chung, D., Christopoulos, G. I., King-Casas, B., Ball, S. B., & Chiu, P. H. (2015). Social signals of safety and risk confer utility and have asymmetric effects on observers' choices. Nature Neuroscience, 18(6), 912-916.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- peer_ocu(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- peer_ocu(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
General Purpose Plotting for hBayesDM. This function plots hyper parameters.
Description
General Purpose Plotting for hBayesDM. This function plots hyper parameters.
Usage
## S3 method for class 'hBayesDM'
plot(
  x = NULL,
  type = "dist",
  ncols = NULL,
  fontSize = NULL,
  binSize = NULL,
  ...
)
Arguments
| x | Model output of class hBayesDM | 
| type | Character value that specifies the plot type. Options are: "dist", "trace", or "simple". Defaults to "dist". | 
| ncols | Integer value specifying how many plots there should be per row. Defaults to the number of parameters. | 
| fontSize | Integer value specifying the size of the font used for plotting. Defaults to 10. | 
| binSize | Integer value specifying how wide the bars on the histogram should be. Defaults to 30. | 
| ... | Additional arguments to be passed on | 
Plots the histogram of MCMC samples.
Description
Plots the histogram of MCMC samples.
Usage
plotDist(
  sample = NULL,
  Title = NULL,
  xLab = "Value",
  yLab = "Density",
  xLim = NULL,
  fontSize = NULL,
  binSize = NULL,
  ...
)
Arguments
| sample | MCMC samples | 
| Title | Character value containing the main title for the plot | 
| xLab | Character value containing the x label | 
| yLab | Character value containing the y label | 
| xLim | Vector containing the lower and upper x-bounds of the plot | 
| fontSize | Size of the font to use for plotting. Defaults to 10 | 
| binSize | Size of the bins for creating the histogram. Defaults to 30 | 
| ... | Arguments that can be additionally supplied to geom_histogram | 
Value
h1 Plot object
Plots highest density interval (HDI) from (MCMC) samples and prints HDI in the R console. HDI is indicated by a red line. Based on John Kruschke's codes.
Description
Plots highest density interval (HDI) from (MCMC) samples and prints HDI in the R console. HDI is indicated by a red line. Based on John Kruschke's codes.
Usage
plotHDI(
  sample = NULL,
  credMass = 0.95,
  Title = NULL,
  xLab = "Value",
  yLab = "Density",
  fontSize = NULL,
  binSize = 30,
  ...
)
Arguments
| sample | MCMC samples | 
| credMass | A scalar between 0 and 1, indicating the mass within the credible interval that is to be estimated. | 
| Title | Character value containing the main title for the plot | 
| xLab | Character value containing the x label | 
| yLab | Character value containing the y label | 
| fontSize | Integer value specifying the font size to be used for the plot labels | 
| binSize | Integer value specifyin ghow wide the bars on the histogram should be. Defaults to 30. | 
| ... | Arguments that can be additionally supplied to geom_histogram | 
Value
A vector containing the limits of the HDI
Plots individual posterior distributions, using the stan_plot function of the rstan package
Description
Plots individual posterior distributions, using the stan_plot function of the rstan package
Usage
plotInd(obj = NULL, pars, show_density = T, ...)
Arguments
| obj | An output of the hBayesDM. Its class should be 'hBayesDM'. | 
| pars | (from stan_plot's help file) Character vector of parameter names. If unspecified, show all user-defined parameters or the first 10 (if there are more than 10) | 
| show_density | T(rue) or F(alse). Show the density (T) or not (F)? | 
| ... | (from stan_plot's help file) Optional additional named arguments passed to stan_plot, which will be passed to geoms. See stan_plot's help file. | 
Examples
## Not run: 
# Run a model
output <- dd_hyperbolic("example", 2000, 1000, 3, 3)
# Plot the hyper parameters ('k' and 'beta')
plot(output)
# Plot individual 'k' (discounting rate) parameters
plotInd(output, "k")
# Plot individual 'beta' (inverse temperature) parameters
plotInd(output, "beta")
# Plot individual 'beta' parameters but don't show density
plotInd(output, "beta", show_density = F)
## End(Not run)
Print model-fits (mean LOOIC or WAIC values in addition to Akaike weights) of hBayesDM Models
Description
Print model-fits (mean LOOIC or WAIC values in addition to Akaike weights) of hBayesDM Models
Usage
printFit(..., ic = "looic", ncore = 2, roundTo = 3)
Arguments
| ... | Model objects output by hBayesDM functions (e.g. output1, output2, etc.) | 
| ic | Which model comparison information criterion to use? 'looic', 'waic', or 'both | 
| ncore | Number of corse to use when computing LOOIC | 
| roundTo | Number of digits to the right of the decimal point in the output | 
Value
modelTable A table with relevant model comparison data. LOOIC and WAIC weights are computed as Akaike weights.
Examples
## Not run: 
# Run two models and store results in "output1" and "output2"
output1 <- dd_hyperbolic("example", 2000, 1000, 3, 3)
output2 <- dd_exp("example", 2000, 1000, 3, 3)
# Show the LOOIC model fit estimates
printFit(output1, output2)
# To show the WAIC model fit estimates
printFit(output1, output2, ic = "waic")
# To show both LOOIC and WAIC
printFit(output1, output2, ic = "both")
## End(Not run)
Experience-Weighted Attraction Model
Description
Hierarchical Bayesian Modeling of the Probabilistic Reversal Learning Task using Experience-Weighted Attraction Model.
It has the following parameters: phi (1 - learning rate), rho (experience decay factor), beta (inverse temperature).
-  Task: Probabilistic Reversal Learning Task 
-  Model: Experience-Weighted Attraction Model (Ouden et al., 2013) 
Usage
prl_ewa(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Probabilistic Reversal Learning Task, there should be 3 columns of data with the
labels "subjID", "choice", "outcome". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on that trial: 1 or 2. 
- outcome
- Integer value representing the outcome of that trial (where reward == 1, and loss == -1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Jaeyeong Yang (for model-based regressors) <jaeyeong.yang1125@gmail.com>, Harhim Park (for model-based regressors) <hrpark12@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"prl_ewa"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Ouden, den, H. E. M., Daw, N. D., Fernandez, G., Elshout, J. A., Rijpkema, M., Hoogman, M., et al. (2013). Dissociable Effects of Dopamine and Serotonin on Reversal Learning. Neuron, 80(4), 1090-1100. https://doi.org/10.1016/j.neuron.2013.08.030
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- prl_ewa(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- prl_ewa(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Fictitious Update Model
Description
Hierarchical Bayesian Modeling of the Probabilistic Reversal Learning Task using Fictitious Update Model.
It has the following parameters: eta (learning rate), alpha (indecision point), beta (inverse temperature).
-  Task: Probabilistic Reversal Learning Task 
-  Model: Fictitious Update Model (Glascher et al., 2009) 
Usage
prl_fictitious(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Probabilistic Reversal Learning Task, there should be 3 columns of data with the
labels "subjID", "choice", "outcome". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on that trial: 1 or 2. 
- outcome
- Integer value representing the outcome of that trial (where reward == 1, and loss == -1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Jaeyeong Yang (for model-based regressors) <jaeyeong.yang1125@gmail.com>, Harhim Park (for model-based regressors) <hrpark12@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"prl_fictitious"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Glascher, J., Hampton, A. N., & O'Doherty, J. P. (2009). Determining a Role for Ventromedial Prefrontal Cortex in Encoding Action-Based Value Signals During Reward-Related Decision Making. Cerebral Cortex, 19(2), 483-495. https://doi.org/10.1093/cercor/bhn098
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- prl_fictitious(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- prl_fictitious(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Fictitious Update Model
Description
Multiple-Block Hierarchical Bayesian Modeling of the Probabilistic Reversal Learning Task using Fictitious Update Model.
It has the following parameters: eta (learning rate), alpha (indecision point), beta (inverse temperature).
-  Task: Probabilistic Reversal Learning Task 
-  Model: Fictitious Update Model (Glascher et al., 2009) 
Usage
prl_fictitious_multipleB(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Probabilistic Reversal Learning Task, there should be 4 columns of data with the
labels "subjID", "block", "choice", "outcome". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- block
- A unique identifier for each of the multiple blocks within each subject. 
- choice
- Integer value representing the option chosen on that trial: 1 or 2. 
- outcome
- Integer value representing the outcome of that trial (where reward == 1, and loss == -1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Jaeyeong Yang (for model-based regressors) <jaeyeong.yang1125@gmail.com>, Harhim Park (for model-based regressors) <hrpark12@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"prl_fictitious_multipleB"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Glascher, J., Hampton, A. N., & O'Doherty, J. P. (2009). Determining a Role for Ventromedial Prefrontal Cortex in Encoding Action-Based Value Signals During Reward-Related Decision Making. Cerebral Cortex, 19(2), 483-495. https://doi.org/10.1093/cercor/bhn098
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- prl_fictitious_multipleB(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- prl_fictitious_multipleB(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Fictitious Update Model, with separate learning rates for positive and negative prediction error (PE)
Description
Hierarchical Bayesian Modeling of the Probabilistic Reversal Learning Task using Fictitious Update Model, with separate learning rates for positive and negative prediction error (PE).
It has the following parameters: eta_pos (learning rate, +PE), eta_neg (learning rate, -PE), alpha (indecision point), beta (inverse temperature).
-  Task: Probabilistic Reversal Learning Task 
-  Model: Fictitious Update Model, with separate learning rates for positive and negative prediction error (PE) (Glascher et al., 2009; Ouden et al., 2013) 
Usage
prl_fictitious_rp(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Probabilistic Reversal Learning Task, there should be 3 columns of data with the
labels "subjID", "choice", "outcome". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on that trial: 1 or 2. 
- outcome
- Integer value representing the outcome of that trial (where reward == 1, and loss == -1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Jaeyeong Yang (for model-based regressors) <jaeyeong.yang1125@gmail.com>, Harhim Park (for model-based regressors) <hrpark12@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"prl_fictitious_rp"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Glascher, J., Hampton, A. N., & O'Doherty, J. P. (2009). Determining a Role for Ventromedial Prefrontal Cortex in Encoding Action-Based Value Signals During Reward-Related Decision Making. Cerebral Cortex, 19(2), 483-495. https://doi.org/10.1093/cercor/bhn098
Ouden, den, H. E. M., Daw, N. D., Fernandez, G., Elshout, J. A., Rijpkema, M., Hoogman, M., et al. (2013). Dissociable Effects of Dopamine and Serotonin on Reversal Learning. Neuron, 80(4), 1090-1100. https://doi.org/10.1016/j.neuron.2013.08.030
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- prl_fictitious_rp(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- prl_fictitious_rp(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Fictitious Update Model, with separate learning rates for positive and negative prediction error (PE), without alpha (indecision point)
Description
Hierarchical Bayesian Modeling of the Probabilistic Reversal Learning Task using Fictitious Update Model, with separate learning rates for positive and negative prediction error (PE), without alpha (indecision point).
It has the following parameters: eta_pos (learning rate, +PE), eta_neg (learning rate, -PE), beta (inverse temperature).
-  Task: Probabilistic Reversal Learning Task 
-  Model: Fictitious Update Model, with separate learning rates for positive and negative prediction error (PE), without alpha (indecision point) (Glascher et al., 2009; Ouden et al., 2013) 
Usage
prl_fictitious_rp_woa(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Probabilistic Reversal Learning Task, there should be 3 columns of data with the
labels "subjID", "choice", "outcome". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on that trial: 1 or 2. 
- outcome
- Integer value representing the outcome of that trial (where reward == 1, and loss == -1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Jaeyeong Yang (for model-based regressors) <jaeyeong.yang1125@gmail.com>, Harhim Park (for model-based regressors) <hrpark12@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"prl_fictitious_rp_woa"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Glascher, J., Hampton, A. N., & O'Doherty, J. P. (2009). Determining a Role for Ventromedial Prefrontal Cortex in Encoding Action-Based Value Signals During Reward-Related Decision Making. Cerebral Cortex, 19(2), 483-495. https://doi.org/10.1093/cercor/bhn098
Ouden, den, H. E. M., Daw, N. D., Fernandez, G., Elshout, J. A., Rijpkema, M., Hoogman, M., et al. (2013). Dissociable Effects of Dopamine and Serotonin on Reversal Learning. Neuron, 80(4), 1090-1100. https://doi.org/10.1016/j.neuron.2013.08.030
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- prl_fictitious_rp_woa(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- prl_fictitious_rp_woa(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Fictitious Update Model, without alpha (indecision point)
Description
Hierarchical Bayesian Modeling of the Probabilistic Reversal Learning Task using Fictitious Update Model, without alpha (indecision point).
It has the following parameters: eta (learning rate), beta (inverse temperature).
-  Task: Probabilistic Reversal Learning Task 
-  Model: Fictitious Update Model, without alpha (indecision point) (Glascher et al., 2009) 
Usage
prl_fictitious_woa(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Probabilistic Reversal Learning Task, there should be 3 columns of data with the
labels "subjID", "choice", "outcome". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on that trial: 1 or 2. 
- outcome
- Integer value representing the outcome of that trial (where reward == 1, and loss == -1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Jaeyeong Yang (for model-based regressors) <jaeyeong.yang1125@gmail.com>, Harhim Park (for model-based regressors) <hrpark12@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"prl_fictitious_woa"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Glascher, J., Hampton, A. N., & O'Doherty, J. P. (2009). Determining a Role for Ventromedial Prefrontal Cortex in Encoding Action-Based Value Signals During Reward-Related Decision Making. Cerebral Cortex, 19(2), 483-495. https://doi.org/10.1093/cercor/bhn098
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- prl_fictitious_woa(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- prl_fictitious_woa(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Reward-Punishment Model
Description
Hierarchical Bayesian Modeling of the Probabilistic Reversal Learning Task using Reward-Punishment Model.
It has the following parameters: Apun (punishment learning rate), Arew (reward learning rate), beta (inverse temperature).
-  Task: Probabilistic Reversal Learning Task 
-  Model: Reward-Punishment Model (Ouden et al., 2013) 
Usage
prl_rp(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Probabilistic Reversal Learning Task, there should be 3 columns of data with the
labels "subjID", "choice", "outcome". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value representing the option chosen on that trial: 1 or 2. 
- outcome
- Integer value representing the outcome of that trial (where reward == 1, and loss == -1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Jaeyeong Yang (for model-based regressors) <jaeyeong.yang1125@gmail.com>, Harhim Park (for model-based regressors) <hrpark12@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"prl_rp"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Ouden, den, H. E. M., Daw, N. D., Fernandez, G., Elshout, J. A., Rijpkema, M., Hoogman, M., et al. (2013). Dissociable Effects of Dopamine and Serotonin on Reversal Learning. Neuron, 80(4), 1090-1100. https://doi.org/10.1016/j.neuron.2013.08.030
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- prl_rp(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- prl_rp(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Reward-Punishment Model
Description
Multiple-Block Hierarchical Bayesian Modeling of the Probabilistic Reversal Learning Task using Reward-Punishment Model.
It has the following parameters: Apun (punishment learning rate), Arew (reward learning rate), beta (inverse temperature).
-  Task: Probabilistic Reversal Learning Task 
-  Model: Reward-Punishment Model (Ouden et al., 2013) 
Usage
prl_rp_multipleB(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Probabilistic Reversal Learning Task, there should be 4 columns of data with the
labels "subjID", "block", "choice", "outcome". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- block
- A unique identifier for each of the multiple blocks within each subject. 
- choice
- Integer value representing the option chosen on that trial: 1 or 2. 
- outcome
- Integer value representing the outcome of that trial (where reward == 1, and loss == -1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Jaeyeong Yang (for model-based regressors) <jaeyeong.yang1125@gmail.com>, Harhim Park (for model-based regressors) <hrpark12@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"prl_rp_multipleB"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Ouden, den, H. E. M., Daw, N. D., Fernandez, G., Elshout, J. A., Rijpkema, M., Hoogman, M., et al. (2013). Dissociable Effects of Dopamine and Serotonin on Reversal Learning. Neuron, 80(4), 1090-1100. https://doi.org/10.1016/j.neuron.2013.08.030
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- prl_rp_multipleB(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- prl_rp_multipleB(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Drift Diffusion Model
Description
Hierarchical Bayesian Modeling of the Probabilistic Selection Task (with RT data) using Drift Diffusion Model.
It has the following parameters: a (boundary separation), tau (non-decision time), d1 (drift rate scaling), d2 (drift rate scaling), d3 (drift rate scaling).
-  Task: Probabilistic Selection Task (with RT data) (Frank et al., 2007; Frank et al., 2004) 
-  Model: Drift Diffusion Model (Pedersen et al., 2017) 
Usage
pstRT_ddm(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Probabilistic Selection Task (with RT data), there should be 4 columns of data with the
labels "subjID", "cond", "choice", "RT". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- cond
- Integer value representing the task condition of the given trial (AB == 1, CD == 2, EF == 3). 
- choice
- Integer value representing the option chosen on the given trial (1 or 2). 
- RT
- Float value representing the time taken for the response on the given trial. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Hoyoung Doh <hoyoung.doh@gmail.com>, Sanghoon Kang <sanghoon.kang@yale.edu>, Jihyun K. Hur <jihyun.hur@yale.edu>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"pstRT_ddm"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Frank, M. J., Santamaria, A., O'Reilly, R. C., & Willcutt, E. (2007). Testing computational models of dopamine and noradrenaline dysfunction in attention deficit/hyperactivity disorder. Neuropsychopharmacology, 32(7), 1583-1599.
Frank, M. J., Seeberger, L. C., & O'reilly, R. C. (2004). By carrot or by stick: cognitive reinforcement learning in parkinsonism. Science, 306(5703), 1940-1943.
Pedersen, M. L., Frank, M. J., & Biele, G. (2017). The drift diffusion model as the choice rule in reinforcement learning. Psychonomic bulletin & review, 24(4), 1234-1251.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- pstRT_ddm(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- pstRT_ddm(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Reinforcement Learning Drift Diffusion Model 1
Description
Hierarchical Bayesian Modeling of the Probabilistic Selection Task (with RT data) using Reinforcement Learning Drift Diffusion Model 1.
It has the following parameters: a (boundary separation), tau (non-decision time), v (drift rate scaling), alpha (learning rate).
-  Task: Probabilistic Selection Task (with RT data) (Frank et al., 2007; Frank et al., 2004) 
-  Model: Reinforcement Learning Drift Diffusion Model 1 (Pedersen et al., 2017) 
Usage
pstRT_rlddm1(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Probabilistic Selection Task (with RT data), there should be 6 columns of data with the
labels "subjID", "cond", "prob", "choice", "RT", "feedback". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- cond
- Integer value representing the task condition of the given trial (AB == 1, CD == 2, EF == 3). 
- prob
- Float value representing the probability that a correct response (1) is rewarded in the current task condition. 
- choice
- Integer value representing the option chosen on the given trial (1 or 2). 
- RT
- Float value representing the time taken for the response on the given trial. 
- feedback
- Integer value representing the outcome of the given trial (where 'correct' == 1, and 'incorrect' == 0). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Hoyoung Doh <hoyoung.doh@gmail.com>, Sanghoon Kang <sanghoon.kang@yale.edu>, Jihyun K. Hur <jihyun.hur@yale.edu>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"pstRT_rlddm1"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Frank, M. J., Santamaria, A., O'Reilly, R. C., & Willcutt, E. (2007). Testing computational models of dopamine and noradrenaline dysfunction in attention deficit/hyperactivity disorder. Neuropsychopharmacology, 32(7), 1583-1599.
Frank, M. J., Seeberger, L. C., & O'reilly, R. C. (2004). By carrot or by stick: cognitive reinforcement learning in parkinsonism. Science, 306(5703), 1940-1943.
Pedersen, M. L., Frank, M. J., & Biele, G. (2017). The drift diffusion model as the choice rule in reinforcement learning. Psychonomic bulletin & review, 24(4), 1234-1251.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- pstRT_rlddm1(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- pstRT_rlddm1(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Reinforcement Learning Drift Diffusion Model 6
Description
Hierarchical Bayesian Modeling of the Probabilistic Selection Task (with RT data) using Reinforcement Learning Drift Diffusion Model 6.
It has the following parameters: a (boundary separation), bp (boundary separation power), tau (non-decision time), v (drift rate scaling), alpha_pos (learning rate for positive prediction error), alpha_neg (learning rate for negative prediction error).
-  Task: Probabilistic Selection Task (with RT data) (Frank et al., 2007; Frank et al., 2004) 
-  Model: Reinforcement Learning Drift Diffusion Model 6 (Pedersen et al., 2017) 
Usage
pstRT_rlddm6(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Probabilistic Selection Task (with RT data), there should be 7 columns of data with the
labels "subjID", "iter", "cond", "prob", "choice", "RT", "feedback". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- iter
- Integer value representing the trial number for each task condition. 
- cond
- Integer value representing the task condition of the given trial (AB == 1, CD == 2, EF == 3). 
- prob
- Float value representing the probability that a correct response (1) is rewarded in the current task condition. 
- choice
- Integer value representing the option chosen on the given trial (1 or 2). 
- RT
- Float value representing the time taken for the response on the given trial. 
- feedback
- Integer value representing the outcome of the given trial (where 'correct' == 1, and 'incorrect' == 0). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Hoyoung Doh <hoyoung.doh@gmail.com>, Sanghoon Kang <sanghoon.kang@yale.edu>, Jihyun K. Hur <jihyun.hur@yale.edu>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"pstRT_rlddm6"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Frank, M. J., Santamaria, A., O'Reilly, R. C., & Willcutt, E. (2007). Testing computational models of dopamine and noradrenaline dysfunction in attention deficit/hyperactivity disorder. Neuropsychopharmacology, 32(7), 1583-1599.
Frank, M. J., Seeberger, L. C., & O'reilly, R. C. (2004). By carrot or by stick: cognitive reinforcement learning in parkinsonism. Science, 306(5703), 1940-1943.
Pedersen, M. L., Frank, M. J., & Biele, G. (2017). The drift diffusion model as the choice rule in reinforcement learning. Psychonomic bulletin & review, 24(4), 1234-1251.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- pstRT_rlddm6(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- pstRT_rlddm6(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Q Learning Model
Description
Hierarchical Bayesian Modeling of the Probabilistic Selection Task using Q Learning Model.
It has the following parameters: alpha (learning rate), beta (inverse temperature).
-  Task: Probabilistic Selection Task 
-  Model: Q Learning Model (Frank et al., 2007) 
Usage
pst_Q(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Probabilistic Selection Task, there should be 4 columns of data with the
labels "subjID", "type", "choice", "reward". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- type
- Two-digit number indicating which pair of stimuli were presented for that trial, e.g. 12, 34, or 56. The digit on the left (tens-digit) indicates the presented stimulus for option1, while the digit on the right (ones-digit) indicates that for option2. Code for each stimulus type (1~6) is defined as for 80% (type 1), 20% (type 2), 70% (type 3), 30% (type 4), 60% (type 5), 40% (type 6). The modeling will still work even if different probabilities are used for the stimuli; however, the total number of stimuli should be less than or equal to 6. 
- choice
- Whether the subject chose the left option (option1) out of the given two options (i.e. if option1 was chosen, 1; if option2 was chosen, 0). 
- reward
- Amount of reward earned as a result of the trial. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
David Munoz Tord <david.munoztord@unige.ch>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"pst_Q"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Frank, M. J., Moustafa, A. A., Haughey, H. M., Curran, T., & Hutchison, K. E. (2007). Genetic triple dissociation reveals multiple roles for dopamine in reinforcement learning. Proceedings of the National Academy of Sciences, 104(41), 16311-16316.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- pst_Q(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- pst_Q(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Gain-Loss Q Learning Model
Description
Hierarchical Bayesian Modeling of the Probabilistic Selection Task using Gain-Loss Q Learning Model.
It has the following parameters: alpha_pos (learning rate for positive feedbacks), alpha_neg (learning rate for negative feedbacks), beta (inverse temperature).
-  Task: Probabilistic Selection Task 
-  Model: Gain-Loss Q Learning Model (Frank et al., 2007) 
Usage
pst_gainloss_Q(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Probabilistic Selection Task, there should be 4 columns of data with the
labels "subjID", "type", "choice", "reward". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- type
- Two-digit number indicating which pair of stimuli were presented for that trial, e.g. 12, 34, or 56. The digit on the left (tens-digit) indicates the presented stimulus for option1, while the digit on the right (ones-digit) indicates that for option2. Code for each stimulus type (1~6) is defined as for 80% (type 1), 20% (type 2), 70% (type 3), 30% (type 4), 60% (type 5), 40% (type 6). The modeling will still work even if different probabilities are used for the stimuli; however, the total number of stimuli should be less than or equal to 6. 
- choice
- Whether the subject chose the left option (option1) out of the given two options (i.e. if option1 was chosen, 1; if option2 was chosen, 0). 
- reward
- Amount of reward earned as a result of the trial. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Jaeyeong Yang <jaeyeong.yang1125@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"pst_gainloss_Q"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Frank, M. J., Moustafa, A. A., Haughey, H. M., Curran, T., & Hutchison, K. E. (2007). Genetic triple dissociation reveals multiple roles for dopamine in reinforcement learning. Proceedings of the National Academy of Sciences, 104(41), 16311-16316.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- pst_gainloss_Q(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- pst_gainloss_Q(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Prospect Theory, without loss aversion (LA) parameter
Description
Hierarchical Bayesian Modeling of the Risk Aversion Task using Prospect Theory, without loss aversion (LA) parameter.
It has the following parameters: rho (risk aversion), tau (inverse temperature).
-  Task: Risk Aversion Task 
-  Model: Prospect Theory, without loss aversion (LA) parameter (Sokol-Hessner et al., 2009) 
Usage
ra_noLA(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Risk Aversion Task, there should be 5 columns of data with the
labels "subjID", "gain", "loss", "cert", "gamble". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- gain
- Possible (50%) gain outcome of a risky option (e.g. 9). 
- loss
- Possible (50%) loss outcome of a risky option (e.g. 5, or -5). 
- cert
- Guaranteed amount of a safe option. "cert" is assumed to be zero or greater than zero. 
- gamble
- If gamble was taken, gamble == 1; else gamble == 0. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"ra_noLA"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Sokol-Hessner, P., Hsu, M., Curley, N. G., Delgado, M. R., Camerer, C. F., Phelps, E. A., & Smith, E. E. (2009). Thinking like a Trader Selectively Reduces Individuals' Loss Aversion. Proceedings of the National Academy of Sciences of the United States of America, 106(13), 5035-5040. https://www.pnas.org/content/106/13/5035
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- ra_noLA(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- ra_noLA(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Prospect Theory, without risk aversion (RA) parameter
Description
Hierarchical Bayesian Modeling of the Risk Aversion Task using Prospect Theory, without risk aversion (RA) parameter.
It has the following parameters: lambda (loss aversion), tau (inverse temperature).
-  Task: Risk Aversion Task 
-  Model: Prospect Theory, without risk aversion (RA) parameter (Sokol-Hessner et al., 2009) 
Usage
ra_noRA(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Risk Aversion Task, there should be 5 columns of data with the
labels "subjID", "gain", "loss", "cert", "gamble". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- gain
- Possible (50%) gain outcome of a risky option (e.g. 9). 
- loss
- Possible (50%) loss outcome of a risky option (e.g. 5, or -5). 
- cert
- Guaranteed amount of a safe option. "cert" is assumed to be zero or greater than zero. 
- gamble
- If gamble was taken, gamble == 1; else gamble == 0. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"ra_noRA"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Sokol-Hessner, P., Hsu, M., Curley, N. G., Delgado, M. R., Camerer, C. F., Phelps, E. A., & Smith, E. E. (2009). Thinking like a Trader Selectively Reduces Individuals' Loss Aversion. Proceedings of the National Academy of Sciences of the United States of America, 106(13), 5035-5040. https://www.pnas.org/content/106/13/5035
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- ra_noRA(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- ra_noRA(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Prospect Theory
Description
Hierarchical Bayesian Modeling of the Risk Aversion Task using Prospect Theory.
It has the following parameters: rho (risk aversion), lambda (loss aversion), tau (inverse temperature).
-  Task: Risk Aversion Task 
-  Model: Prospect Theory (Sokol-Hessner et al., 2009) 
Usage
ra_prospect(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Risk Aversion Task, there should be 5 columns of data with the
labels "subjID", "gain", "loss", "cert", "gamble". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- gain
- Possible (50%) gain outcome of a risky option (e.g. 9). 
- loss
- Possible (50%) loss outcome of a risky option (e.g. 5, or -5). 
- cert
- Guaranteed amount of a safe option. "cert" is assumed to be zero or greater than zero. 
- gamble
- If gamble was taken, gamble == 1; else gamble == 0. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"ra_prospect"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Sokol-Hessner, P., Hsu, M., Curley, N. G., Delgado, M. R., Camerer, C. F., Phelps, E. A., & Smith, E. E. (2009). Thinking like a Trader Selectively Reduces Individuals' Loss Aversion. Proceedings of the National Academy of Sciences of the United States of America, 106(13), 5035-5040. https://www.pnas.org/content/106/13/5035
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- ra_prospect(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- ra_prospect(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Happiness Computational Model
Description
Hierarchical Bayesian Modeling of the Risky Decision Task using Happiness Computational Model.
It has the following parameters: w0 (baseline), w1 (weight of certain rewards), w2 (weight of expected values), w3 (weight of reward prediction errors), gam (forgetting factor), sig (standard deviation of error).
-  Task: Risky Decision Task 
-  Model: Happiness Computational Model (Rutledge et al., 2014) 
Usage
rdt_happiness(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Risky Decision Task, there should be 9 columns of data with the
labels "subjID", "gain", "loss", "cert", "type", "gamble", "outcome", "happy", "RT_happy". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- gain
- Possible (50%) gain outcome of a risky option (e.g. 9). 
- loss
- Possible (50%) loss outcome of a risky option (e.g. 5, or -5). 
- cert
- Guaranteed amount of a safe option. 
- type
- loss == -1, mixed == 0, gain == 1 
- gamble
- If gamble was taken, gamble == 1; else gamble == 0. 
- outcome
- Result of the trial. 
- happy
- Happiness score. 
- RT_happy
- Reaction time for answering the happiness score. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Harhim Park <hrpark12@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"rdt_happiness"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Rutledge, R. B., Skandali, N., Dayan, P., & Dolan, R. J. (2014). A computational and neural model of momentary subjective well-being. Proceedings of the National Academy of Sciences, 111(33), 12252-12257.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- rdt_happiness(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- rdt_happiness(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Function for extracting Rhat values from an hBayesDM object
Description
A convenience function for extracting Rhat values from an hBayesDM object. Can also check if all Rhat values are less than or equal to a specified value. If variational inference was used, an error message will be displayed.
Usage
rhat(fit = NULL, less = NULL)
Arguments
| fit | Model output of class  | 
| less | A numeric value specifying how to check Rhat values. Defaults to FALSE. | 
Value
If 'less' is specified, then rhat(fit, less) will return TRUE if all Rhat values are
less than or equal to 'less'. If any values are greater than 'less', rhat(fit, less) will
return FALSE. If 'less' is left unspecified (NULL), rhat(fit) will return a data.frame object
containing all Rhat values.
Signal detection theory model
Description
Hierarchical Bayesian Modeling of the 2-alternative forced choice task using Signal detection theory model.
It has the following parameters: d (discriminability), c (decision bias (criteria)).
-  Task: 2-alternative forced choice task 
-  Model: Signal detection theory model 
Usage
task2AFC_sdt(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the 2-alternative forced choice task, there should be 3 columns of data with the
labels "subjID", "stimulus", "response". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- stimulus
- Types of Stimuli (Should be 1 or 0. 1 for Signal and 0 for Noise) 
- response
- Types of Responses (It should be same format as the stimulus field. Should be 1 or 0) 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Heesun Park <heesunpark26@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"task2AFC_sdt"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- task2AFC_sdt(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- task2AFC_sdt(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Hybrid Model, with 4 parameters
Description
Hierarchical Bayesian Modeling of the Two-Step Task using Hybrid Model, with 4 parameters.
It has the following parameters: a (learning rate for both stages 1 & 2), beta (inverse temperature for both stages 1 & 2), pi (perseverance), w (model-based weight).
-  Task: Two-Step Task (Daw et al., 2011) 
-  Model: Hybrid Model, with 4 parameters (Daw et al., 2011; Wunderlich et al., 2012) 
Usage
ts_par4(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Two-Step Task, there should be 4 columns of data with the
labels "subjID", "level1_choice", "level2_choice", "reward". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- level1_choice
- Choice made for Level (Stage) 1 (1: stimulus 1, 2: stimulus 2). 
- level2_choice
- Choice made for Level (Stage) 2 (1: stimulus 3, 2: stimulus 4, 3: stimulus 5, 4: stimulus 6). 
 Note that, in our notation, choosing stimulus 1 in Level 1 leads to stimulus 3 & 4 in Level 2 with a common (0.7 by default) transition. Similarly, choosing stimulus 2 in Level 1 leads to stimulus 5 & 6 in Level 2 with a common (0.7 by default) transition. To change this default transition probability, set the function argument 'trans_prob' to your preferred value.
- reward
- Reward after Level 2 (0 or 1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Harhim Park <hrpark12@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"ts_par4"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Daw, N. D., Gershman, S. J., Seymour, B., Ben Seymour, Dayan, P., & Dolan, R. J. (2011). Model-Based Influences on Humans' Choices and Striatal Prediction Errors. Neuron, 69(6), 1204-1215. https://doi.org/10.1016/j.neuron.2011.02.027
Daw, N. D., Gershman, S. J., Seymour, B., Ben Seymour, Dayan, P., & Dolan, R. J. (2011). Model-Based Influences on Humans' Choices and Striatal Prediction Errors. Neuron, 69(6), 1204-1215. https://doi.org/10.1016/j.neuron.2011.02.027
Wunderlich, K., Smittenaar, P., & Dolan, R. J. (2012). Dopamine enhances model-based over model-free choice behavior. Neuron, 75(3), 418-424.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- ts_par4(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- ts_par4(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Hybrid Model, with 6 parameters
Description
Hierarchical Bayesian Modeling of the Two-Step Task using Hybrid Model, with 6 parameters.
It has the following parameters: a1 (learning rate in stage 1), beta1 (inverse temperature in stage 1), a2 (learning rate in stage 2), beta2 (inverse temperature in stage 2), pi (perseverance), w (model-based weight).
-  Task: Two-Step Task (Daw et al., 2011) 
-  Model: Hybrid Model, with 6 parameters (Daw et al., 2011) 
Usage
ts_par6(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Two-Step Task, there should be 4 columns of data with the
labels "subjID", "level1_choice", "level2_choice", "reward". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- level1_choice
- Choice made for Level (Stage) 1 (1: stimulus 1, 2: stimulus 2). 
- level2_choice
- Choice made for Level (Stage) 2 (1: stimulus 3, 2: stimulus 4, 3: stimulus 5, 4: stimulus 6). 
 Note that, in our notation, choosing stimulus 1 in Level 1 leads to stimulus 3 & 4 in Level 2 with a common (0.7 by default) transition. Similarly, choosing stimulus 2 in Level 1 leads to stimulus 5 & 6 in Level 2 with a common (0.7 by default) transition. To change this default transition probability, set the function argument 'trans_prob' to your preferred value.
- reward
- Reward after Level 2 (0 or 1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Harhim Park <hrpark12@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"ts_par6"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Daw, N. D., Gershman, S. J., Seymour, B., Ben Seymour, Dayan, P., & Dolan, R. J. (2011). Model-Based Influences on Humans' Choices and Striatal Prediction Errors. Neuron, 69(6), 1204-1215. https://doi.org/10.1016/j.neuron.2011.02.027
Daw, N. D., Gershman, S. J., Seymour, B., Ben Seymour, Dayan, P., & Dolan, R. J. (2011). Model-Based Influences on Humans' Choices and Striatal Prediction Errors. Neuron, 69(6), 1204-1215. https://doi.org/10.1016/j.neuron.2011.02.027
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- ts_par6(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- ts_par6(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Hybrid Model, with 7 parameters (original model)
Description
Hierarchical Bayesian Modeling of the Two-Step Task using Hybrid Model, with 7 parameters (original model).
It has the following parameters: a1 (learning rate in stage 1), beta1 (inverse temperature in stage 1), a2 (learning rate in stage 2), beta2 (inverse temperature in stage 2), pi (perseverance), w (model-based weight), lambda (eligibility trace).
-  Task: Two-Step Task (Daw et al., 2011) 
-  Model: Hybrid Model, with 7 parameters (original model) (Daw et al., 2011) 
Usage
ts_par7(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, it's possible to set model-specific argument(s) as follows: 
 | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Two-Step Task, there should be 4 columns of data with the
labels "subjID", "level1_choice", "level2_choice", "reward". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- level1_choice
- Choice made for Level (Stage) 1 (1: stimulus 1, 2: stimulus 2). 
- level2_choice
- Choice made for Level (Stage) 2 (1: stimulus 3, 2: stimulus 4, 3: stimulus 5, 4: stimulus 6). 
 Note that, in our notation, choosing stimulus 1 in Level 1 leads to stimulus 3 & 4 in Level 2 with a common (0.7 by default) transition. Similarly, choosing stimulus 2 in Level 1 leads to stimulus 5 & 6 in Level 2 with a common (0.7 by default) transition. To change this default transition probability, set the function argument 'trans_prob' to your preferred value.
- reward
- Reward after Level 2 (0 or 1). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Harhim Park <hrpark12@gmail.com>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"ts_par7"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Daw, N. D., Gershman, S. J., Seymour, B., Ben Seymour, Dayan, P., & Dolan, R. J. (2011). Model-Based Influences on Humans' Choices and Striatal Prediction Errors. Neuron, 69(6), 1204-1215. https://doi.org/10.1016/j.neuron.2011.02.027
Daw, N. D., Gershman, S. J., Seymour, B., Ben Seymour, Dayan, P., & Dolan, R. J. (2011). Model-Based Influences on Humans' Choices and Striatal Prediction Errors. Neuron, 69(6), 1204-1215. https://doi.org/10.1016/j.neuron.2011.02.027
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- ts_par7(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- ts_par7(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Ideal Observer Model
Description
Hierarchical Bayesian Modeling of the Norm-Training Ultimatum Game using Ideal Observer Model.
It has the following parameters: alpha (envy), beta (guilt), tau (inverse temperature).
-  Task: Norm-Training Ultimatum Game 
-  Model: Ideal Observer Model (Xiang et al., 2013) 
Usage
ug_bayes(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Norm-Training Ultimatum Game, there should be 3 columns of data with the
labels "subjID", "offer", "accept". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- offer
- Floating point value representing the offer made in that trial (e.g. 4, 10, 11). 
- accept
- 1 or 0, indicating whether the offer was accepted in that trial (where accepted == 1, rejected == 0). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"ug_bayes"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Xiang, T., Lohrenz, T., & Montague, P. R. (2013). Computational Substrates of Norms and Their Violations during Social Exchange. Journal of Neuroscience, 33(3), 1099-1108. https://doi.org/10.1523/JNEUROSCI.1642-12.2013
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- ug_bayes(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- ug_bayes(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Rescorla-Wagner (Delta) Model
Description
Hierarchical Bayesian Modeling of the Norm-Training Ultimatum Game using Rescorla-Wagner (Delta) Model.
It has the following parameters: alpha (envy), tau (inverse temperature), ep (norm adaptation rate).
-  Task: Norm-Training Ultimatum Game 
-  Model: Rescorla-Wagner (Delta) Model (Gu et al., 2015) 
Usage
ug_delta(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Norm-Training Ultimatum Game, there should be 3 columns of data with the
labels "subjID", "offer", "accept". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- offer
- Floating point value representing the offer made in that trial (e.g. 4, 10, 11). 
- accept
- 1 or 0, indicating whether the offer was accepted in that trial (where accepted == 1, rejected == 0). 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"ug_delta"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Gu, X., Wang, X., Hula, A., Wang, S., Xu, S., Lohrenz, T. M., et al. (2015). Necessary, Yet Dissociable Contributions of the Insular and Ventromedial Prefrontal Cortices to Norm Adaptation: Computational and Lesion Evidence in Humans. Journal of Neuroscience, 35(2), 467-473. https://doi.org/10.1523/JNEUROSCI.2906-14.2015
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- ug_delta(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- ug_delta(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)
Sequential Learning Model
Description
Hierarchical Bayesian Modeling of the Wisconsin Card Sorting Task using Sequential Learning Model.
It has the following parameters: r (reward sensitivity), p (punishment sensitivity), d (decision consistency or inverse temperature).
-  Task: Wisconsin Card Sorting Task 
-  Model: Sequential Learning Model (Bishara et al., 2010) 
Usage
wcs_sql(
  data = NULL,
  niter = 4000,
  nwarmup = 1000,
  nchain = 4,
  ncore = 1,
  nthin = 1,
  inits = "vb",
  indPars = "mean",
  modelRegressor = FALSE,
  vb = FALSE,
  inc_postpred = FALSE,
  adapt_delta = 0.95,
  stepsize = 1,
  max_treedepth = 10,
  ...
)
Arguments
| data | Data to be modeled. It should be given as a data.frame object,
a filepath for a tab-seperated txt file,  | 
| niter | Number of iterations, including warm-up. Defaults to 4000. | 
| nwarmup | Number of iterations used for warm-up only. Defaults to 1000. | 
| nchain | Number of Markov chains to run. Defaults to 4. | 
| ncore | Number of CPUs to be used for running. Defaults to 1. | 
| nthin | Every  | 
| inits | Character value specifying how the initial values should be generated. Possible options are "vb" (default), "fixed", "random", or your own initial values. | 
| indPars | Character value specifying how to summarize individual parameters. Current options are: "mean", "median", or "mode". | 
| modelRegressor | Whether to export model-based regressors ( | 
| vb | Use variational inference to approximately draw from a posterior distribution. Defaults
to  | 
| inc_postpred | Include trial-level posterior predictive simulations in model output (may greatly increase file
size). Defaults to  | 
| adapt_delta | Floating point value representing the target acceptance probability of a new sample in the MCMC chain. Must be between 0 and 1. See Details below. | 
| stepsize | Integer value specifying the size of each leapfrog step that the MCMC sampler can take on each new iteration. See Details below. | 
| max_treedepth | Integer value specifying how many leapfrog steps the MCMC sampler can take on each new iteration. See Details below. | 
| ... | For this model, there is no model-specific argument. | 
Details
This section describes some of the function arguments in greater detail.
data should be assigned a character value specifying the full path and name (including
extension information, e.g. ".txt") of the file that contains the behavioral data-set of all
subjects of interest for the current analysis. The file should be a tab-delimited text
file, whose rows represent trial-by-trial observations and columns represent variables.
For the Wisconsin Card Sorting Task, there should be 3 columns of data with the
labels "subjID", "choice", "outcome". It is not necessary for the columns to be in this particular order,
however it is necessary that they be labeled correctly and contain the information below:
- subjID
- A unique identifier for each subject in the data-set. 
- choice
- Integer value indicating which deck was chosen on that trial: 1, 2, 3, or 4. 
- outcome
- 1 or 0, indicating the outcome of that trial: correct == 1, wrong == 0. 
*Note: The file may contain other columns of data (e.g. "ReactionTime", "trial_number", etc.), but only the data within the column names listed above will be used during the modeling. As long as the necessary columns mentioned above are present and labeled 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 is equivalent
to burn-in samples. Due to the nature of the MCMC algorithm, initial values (i.e. where the
sampling chains begin) 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 reasonably representative posterior is attained. When the sampling is complete, it is
possible to check the multiple chains for convergence by running the following line of code:
plot(output, type = "trace"). The trace-plot should resemble a "furry caterpillar".
nthin is a numerical value that specifies the "skipping" behavior of the MCMC sampler,
using only every i == nthin samples to generate posterior distributions. By default,
nthin is equal to 1, meaning that every sample is used to generate the posterior.
Control Parameters: adapt_delta, stepsize, and max_treedepth are
advanced options that give the user more control over Stan's MCMC sampler. It is recommended
that only advanced users change the default values, as alterations can profoundly change the
sampler's behavior. Refer to 'The No-U-Turn Sampler: Adaptively Setting Path Lengths in
Hamiltonian Monte Carlo (Hoffman & Gelman, 2014, Journal of Machine Learning Research)' for
more information on the sampler control parameters. One can also refer to 'Section 34.2. HMC
Algorithm Parameters' of the Stan User's Guide
and Reference Manual, or to the help page for stan for a less technical
description of these arguments.
Contributors
Dayeong Min <mindy2801@snu.ac.kr>
Value
A class "hBayesDM" object modelData with the following components:
- model
- Character value that is the name of the model (\code"wcs_sql"). 
- allIndPars
- Data.frame containing the summarized parameter values (as specified by - indPars) for each subject.
- parVals
- List object containing the posterior samples over different parameters. 
- fit
- A class - stanfitobject that contains the fitted Stan model.
- rawdata
- Data.frame containing the raw data used to fit the model, as specified by the user. 
- modelRegressor
- List object containing the extracted model-based regressors. 
References
Bishara, A. J., Kruschke, J. K., Stout, J. C., Bechara, A., McCabe, D. P., & Busemeyer, J. R. (2010). Sequential learning models for the Wisconsin card sort task: Assessing processes in substance dependent individuals. Journal of Mathematical Psychology, 54(1), 5-13.
See Also
We refer users to our in-depth tutorial for an example of using hBayesDM: https://rpubs.com/CCSL/hBayesDM
Examples
## Not run: 
# Run the model with a given data.frame as df
output <- wcs_sql(
  data = df, niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Run the model with example data
output <- wcs_sql(
  data = "example", niter = 2000, nwarmup = 1000, nchain = 4, ncore = 4)
# Visually check convergence of the sampling chains (should look 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)