Equivalence of Leaky Integrator and Low-Pass Filter Decision Models

171 Views Asked by At

I'm working with a decision making model from the cognitive neuroscience literature (the Urgency Gating Model) and have found two different implementations. My concern is that these two implementations are not equivalent.

The first implementation comes from this paper, where the model is specified as a stochastic differential equation for a leaky integrator with time constant $\tau$:

$$ L = 1/\tau$$ $$ dX_t = [-LX_t + \mu]dt + \sigma dW_t$$

for which the corresponding Euler-Maruyama implementation would be

$$ X_{t+1} = X_t + [-LX_t + \mu]\Delta t + \sigma (\sqrt{\Delta t})W_t, \quad W_t \sim \mathcal{N}(0,1)$$

The other paper chooses to approximate the leaky integration using a low-pass filter. They do not give an SDE, but their implementation is based on using an exponential moving average filter with time constant $\tau$ for low-pass filtering:

$$ \alpha = \frac{\tau}{\tau + \Delta t}$$ $$ \begin{align} X_{t+1} &= \alpha X_t + (1-\alpha)\left [\mu\Delta t + \sigma (\sqrt{\Delta t})W_t \right], \quad W_t \sim \mathcal{N}(0,1) \\ &= \frac{1/L}{1/L + \Delta t} X_t + \left(1-\frac{1/L}{1/L + \Delta t}\right)\left [\mu\Delta t + \sigma (\sqrt{\Delta t})W_t \right]\end{align} $$

As far as I can tell, these models are not equivalent to each other, since I am unable to manipulate one into the form of other. Is there a way for me to tell a priori whether, for some parameter set $(\tau, \mu, \sigma, \Delta t)$, the two models will have qualitatively different behavior?

1

There are 1 best solutions below

0
On

I am not entirely sure that I have captured it correctly. I hope that this helps.

Using Iacus (2008, p. 63) and the formula you proved for the UGM (the package CHaRTr was never finalized). I was able to program both and they appear to present the same result. You would have to vet this far further for irrefutable proof, of course. (In case it is not apparent to everyone, this is R programming.)

Leaky Integrator with Time Constant

# ex 2.01. R             (p. 63)
set.seed(123)
N <- 100     # number of iterations (elapsed time)
T <- 1       # time unit or 
x <- 10      # x (as in the formula 'x')
theta <- c(0, 5, 3.5)     # , -L, 
Dt <- 1/N                 # L; read in ref why author coded L and -L differently 
                          # used same pattern in next formula though
Y <- numeric(N + 1)
Y[1] <- x
Z <- rnorm(N)             # W

# the function
for(i in 1:N)Y[i+1] <- Y[i] + (theta[1] - theta[2]*Y[i]) * 
  Dt + theta[3] * sqrt(Dt) * Z[i]
Y <- ts(Y, start=0, deltat=1/N)
plot(Y)   # visualize it

enter image description here

Approximate the Leaky Integration using a Low-Pass Filter

# manually program the other formula - reusing static elements (,,,Δ)
alpha = T/(T + Dt) # repurpose existing elements

# the function    
for(i in 1:N) Y[i+1] <- alpha * Y[i] + (1 - alpha) * 
  (theta[1] + theta[3] * sqrt(Dt) * Z[i])
Y2 <- ts(Y, start=0, deltat=1/N)
plot(Y2)   # visualize it

enter image description here