- [[Smith 2004 psychology and neurobiology of simple decisions]], [[Bogacz 2006 physics of optimal decision making]], [[exponentially collapsing bounds]]
# Idea
In [[drift diffusion model of choice and reaction time|drift diffusion models]], evidence accumulation/integration is leaky or unstable when it changes or varies depending on the position of the integrator. For example, drift rate might increase/decrease when the amount of evidence integrated is less/more; drift rate depends on the position of the decision variable.
Note that [[Wiener process|Wiener diffusion]] is "perfect integration."
A common leaky model is the [[Ornstein-Uhlenbeck model]].
Drift rate at any given moment in time depends on these parameters:
- the starting **drift** (when time `t=0`)
- the **coefficient** by which drift varies with the position, $x$, of integrator
- **leaky** integrator: coefficient < 0
- **unstable** integrator: coefficient > 0
- the **coefficient** by which drift varies with time, $t$
If coefficent for $t$ > 0 and coefficient for $x$ > 0, we have an urgency function^[https://pyddm.readthedocs.io/en/stable/apidoc/dependences.html#ddm.models.drift.DriftLinear].
# Example [[pyddm]] code
```python
drift = DriftLinear(drift=0.5, t=0, x=-1) # Leaky integrator
drift = DriftLinear(drift=0.8, t=0, x=0.4) # Unstable integrator
drift = DriftLinear(drift=0, t=1, x=0.4) # Urgency function
```
```python
class DriftCoherenceLeak(ddm.models.Drift):
name = "Leaky drift"
required_parameters = ["leak"] # <-- Parameters we want to include in the model
# We must always define the get_drift function, which is used to compute the instantaneous value of drift.
def get_drift(self, x, **kwargs):
return self.driftcoh + self.leak * x # leak parameter will be estimated (can be positive or negative)
```
# References
- https://pyddm.readthedocs.io/en/stable/apidoc/dependences.html#ddm.models.drift.DriftLinear
- https://pyddm.readthedocs.io/en/stable/quickstart.html