$$W_{new} = W_{old} + \zeta \cdot (W_{0} - W_{old})$$
func_zeta(shown, value0, values, reward, utility, params, system, ...)A NumericVector representing the values of unchosen options
after decay according to the decay rate.
Which options shown in this trial.
The initial values for all actions.
The current expected values for all actions.
The feedback received by the agent from the environment at trial(t) following the execution of action(a)
The subjective value (internal representation) assigned by the agent to the objective reward.
Parameters used by the model's internal functions, see params
When the agent makes a decision, is a single system at work, or are multiple systems involved? see system
It currently contains the following information; additional information may be added in future package versions.
idinfo:
subid
block
trial
exinfo: contains information whose column names are specified by the user.
Frame
RT
NetWorth
...
behave: includes the following:
action: the behavior performed by the human in the given trial.
latent: the object updated by the agent in the given trial.
simulation: the actual behavior performed by the agent.
position: the position of the stimulus on the screen.
cue and rsp: Cues and responses within latent learning rules, see behrule
state: The state stores the stimuli shown in the current trial—split into components by underscores—and the rewards associated with them.
func_zeta <- function(
shown,
value0,
values,
reward,
utility,
params,
system,
...
){ list2env(list(...), envir = environment())
# If you need extra information(...)
# Column names may be lost(C++), indexes are recommended
# e.g.
# Trial <- idinfo[3]
# Frame <- exinfo[1]
# Action <- behave[1]
zeta <- params[["zeta"]]
bonus <- params[["bonus"]]
if (reward == 0) {
decay <- values + zeta * (value0 - values)
} else if (reward < 0) {
decay <- values + zeta * (value0 - values) + bonus
} else if (reward > 0) {
decay <- values + zeta * (value0 - values) - bonus
}
return(decay)
}