Simulating Continuous Time Models in Julia

I’m interested in simulating a relatively simple continuous-time model in Julia. The model is a variation of the Diamond-Mortensen-Pissarides (DMP) framework with the following elements:

  • Agents are either employed at a firm, where they receive a wage, or unemployed.

  • With a fixed Poisson arrival rate λ, employed agents receive productivity shocks that can either increase or decrease their wage.

  • With a fixed Poisson arrival rate γ, both employed and unemployed agents receive job offers from other firms and decide whether to accept them.

My question is: are there any Julia packages that can simulate agents and their decisions in a continuous-time model like this? In particular, I’m interested in using a package that correctly handles the arrival rates of the multiple Poisson processes.

I’m aware that I could implement the model in discrete time, but I’m not sure if packages exist for continuous-time simulation. By “simulate” I mean tracking the sequence of decisions agents make in the model (e.g., remain unemployed or accept a new job).

I am not aware of any Julia package that does this.

However overall, I highly encourage you to write the model in continuous time and then use a value function iteration approach to solve for all quantities.

That is, if your model doesn’t have closed-form solutions. The beauty of vanilla DMP model (as described in Pissaredes’ textbook) is that there are closed form solutions for all equilibrium values, more or less.

See JumpProcesses.jl

4 Likes

Agents.jl has full support for continuous time processes interlaced with traditional agent based modelling infrastructure via it’s EventQueueABM. See here for a tutorial: Spatial rock-paper-scissors (event based) · Agents.jl

1 Like

My model should have a closed-form solution. I’ll be sure to check my simulations with the values I get via value function iteration. Thank you for the suggestion @pdeffebach !

This is exactly what I’m looking for! I cannot thank you enough @ChrisRackauckas!

2 Likes