recovery_data {binaryRL} | R Documentation |
Process: Recovering Fake Data
Description
This function processes the synthetic datasets generated by 'simulate_list'. For each of these simulated datasets, it then fits every model specified within the 'fit_model' list. In essence, it iteratively calls the 'optimize_para()' function for each generated object.
The fitting procedure is analogous to that performed by 'fit_p', and it similarly leverages parallel computation across subjects to significantly accelerate the parameter estimation process.
Usage
recovery_data(
list,
id = 1,
fit_model,
funcs = NULL,
model_name,
n_params,
n_trials,
lower,
upper,
initial_params = NA,
initial_size = 50,
iteration = 10,
seed = 123,
nc = 1,
algorithm
)
Arguments
list |
[list] A list generated by function 'simulate_list' |
id |
[vector] Specifies which subject's data to use. In parameter and model recovery analyses, the specific subject ID is often irrelevant. Although the experimental trial order might have some randomness for each subject, the sequence of reward feedback is typically pseudo-random. The default value for this argument is 'NULL'. When 'id' is 'NULL', the program automatically detects existing subject IDs within the dataset. It then randomly selects one subject as a sample, and the parameter and model recovery procedures are performed based on this selected subject's data.
|
fit_model |
[function] fit model |
funcs |
[character] A character vector containing the names of all user-defined functions required for the computation. When parallel computation is enabled (i.e., 'nc > 1'), user-defined models and their custom functions might not be automatically accessible within the parallel environment. Therefore, if you have created your own reinforcement learning model
that modifies the package's default four default functions
(default functions:
|
model_name |
[character] The name of your modal |
n_params |
[integer] The number of free parameters in your model. |
n_trials |
[integer] The total number of trials in your experiment. |
lower |
[vector] Lower bounds of free parameters |
upper |
[vector] Upper bounds of free parameters |
initial_params |
[numeric]
Initial values for the free parameters that the optimization algorithm will
search from. These are primarily relevant when using algorithms that require
an explicit starting point, such as
|
initial_size |
[integer]
This parameter corresponds to the population size in genetic
algorithms (
|
iteration |
[integer] The number of iterations the optimization algorithm will perform when searching for the best-fitting parameters during the fitting phase. A higher number of iterations may increase the likelihood of finding a global optimum but also increases computation time. |
seed |
[integer] Random seed. This ensures that the results are reproducible and remain the same each time the function is run.
|
nc |
[integer] Number of cores to use for parallel processing. Since fitting optimal parameters for each subject is an independent task, parallel computation can significantly speed up the fitting process:
|
algorithm |
[character] Choose an algorithm package from 'L-BFGS-B', 'GenSA', 'GA', 'DEoptim', 'PSO', 'Bayesian', 'CMA-ES'. In addition, any algorithm from the 'nloptr' package is also supported. If your chosen 'nloptr' algorithm requires a local search, you need to input a character vector. The first element represents the algorithm used for global search, and the second element represents the algorithm used for local search. |
Value
a data frame for parameter recovery and model recovery
Examples
## Not run:
binaryRL.res <- binaryRL::optimize_para(
data = Mason_2024_Exp2,
id = 1,
n_params = 3,
n_trials = 360,
obj_func = binaryRL::RSTD,
lower = c(0, 0, 0),
upper = c(1, 1, 10),
iteration = 100,
algorithm = "L-BFGS-B"
)
summary(binaryRL.res)
## End(Not run)