Skip to contents

Step 2: Generating fake data for parameter and model recovery

Usage

rcv_d(
  estimate,
  data,
  colnames,
  behrule,
  id = NULL,
  models,
  funcs = NULL,
  priors = NULL,
  settings = NULL,
  algorithm,
  lowers,
  uppers,
  control,
  ...
)

Arguments

estimate

Estimate method that you want to use, see estimate

data

A data frame in which each row represents a single trial, see data

colnames

Column names in the data frame, see colnames

behrule

The agent’s implicitly formed internal rule, see behrule

id

The ID of the subject whose experimental structure (e.g., trial order) will be used as the template for generating all simulated data. Defaults to the first subject found in the input data.

models

Reinforcement Learning Models

funcs

The functions forming the reinforcement learning model, see funcs

priors

Prior probability density function of the free parameters, see priors

settings

Other model settings, see settings

algorithm

Algorithm packages that multiRL supports, see algorithm

lowers

Lower bound of free parameters in each model.

uppers

Upper bound of free parameters in each model.

control

Settings manage various aspects of the iterative process, see control

...

Additional arguments passed to internal functions.

Example

 # recovery
 recovery.MLE <- multiRL::rcv_d(
   estimate = "MLE",

   data = multiRL::TAB,
   colnames = list(
     object = c("L_choice", "R_choice"),
     reward = c("L_reward", "R_reward"),
     action = "Sub_Choose"
   ),
   behrule = list(
     cue = c("A", "B", "C", "D"),
     rsp = c("A", "B", "C", "D")
   ),
   id = 1,

   models = list(multiRL::TD, multiRL::RSTD, multiRL::Utility),
   priors = list(
     list(
       alpha = function(x) {stats::rbeta(n = 1, shape1 = 2, shape2 = 2)},
       beta = function(x) {stats::rexp(n = 1, rate = 1)}
     ),
     list(
       alphaN = function(x) {stats::rbeta(n = 1, shape1 = 2, shape2 = 2)},
       alphaP = function(x) {stats::rbeta(n = 1, shape1 = 2, shape2 = 2)},
       beta = function(x) {stats::rexp(n = 1, rate = 1)}
     ),
     list(
       alpha = function(x) {stats::rbeta(n = 1, shape1 = 2, shape2 = 2)},
       beta = function(x) {stats::rexp(n = 1, rate = 1)},
       gamma = function(x) {stats::rbeta(n = 1, shape1 = 2, shape2 = 2)}
     )
   ),
   settings = list(name = c("TD", "RSTD", "Utility")),

   algorithm = "NLOPT_GN_MLSL",
   lowers = list(c(0, 0), c(0, 0, 0), c(0, 0, 0)),
   uppers = list(c(1, 5), c(1, 1, 5), c(1, 5, 1)),
   control = list(core = 10, sample = 100, iter = 100)
 )