These slides and abstract: https://urban-analytics.github.io/dust/presentations.html
We need to better understand urban flows:
Crime – how many possible victims?
Pollution – who is being exposed? Where are the hotspots?
Economy – can we attract more people to our city centre?
Health - can we encourage more active travel?
Understanding and predicting short-term urban flows
Uncertainty abounds
Inputs (measurement noise)
Parameter values
Model structure
Nonlinear models predict near future well, but diverge over time.
Used in meteorology and hydrology to constrain models closer to reality.
Try to improve estimates of the true system state by combining:
Noisy, real-world observations
Model estimates of the system state
Should be more accurate than data / observations in isolation.
Create new methods for dynamically assimilating data into agent-based models.
Developing methods that can be used to better understand uncertainty in individual-level models of cities
Example: Crowds in a train station
We want a real-time model to forecast short-term crowding
How much data do we need?
Counts of people entering?
Counts at various points in the concourse (e.g. cameras)
Full traces of all individuals?
Crowding emerges from random choices of exit and maximum walking speed
Very simple, not designed to be a competitive crowd model
Markovian model
Produces output from a set of inputs (the ‘state vector’) without any other information.
Parameters are fixed
E.g. an agent's max speed and it's chosen destination
This is easier for the DA algorithm
Later work will include the parameters in the state vector and get the DA algorithm to find suitable values
Use probability theory to express all forms of uncertainty
Synonymous with Bayesian modelling
Probabilistic Programming: "a general framework for expressing probabilistic models as computer programs" (Ghahramani, 2015)
By expressing the model probabilistically (i.e. with variables represented as probability distributions), we can explore the impacts of uncertainty and (importantly) begin to assimilate data.
(hopefully)
1. Run StationSim to generate pseudo-truth data
2. Data assimilation framework
Run the model for N iterations up to time t (i.e. 'now')
Construct a Bayesian network to represent the state vector
This gives the a prior estimate of the current state
Observe some 'current' pseudo-truth data and use the probabilistic model (with MCMC) to a produce posterior estimate of the state vector
Forecasts from this point should be more accurate.
"By the time of the work- shop the paper will report initial experiments"
Malleson, 2019
Technically difficult, probabilistic programming is still relatively new
Difficult to test and debug
Positions of agents could be latent (unobserved) in the probabilistic model
Can then include additional observed variables, such as crowd density, and use these to generate a posterior over the latent ones
In other words: very elegant way to include different data (hopefully!)
Results!!
Get it working with all agents
Experiment with different types of observations, e.g.
Cameras that count the passers-by in a single place
Full traces of all agents
Basically: how much do we need to find solutions that fit the observations
Overall aim: data assimilation for agent-based models
We want to be able to simulate cities, assimilating real time 'smart city' data as they emerge to reduce uncertainty (and prevent divergence).
Current goal: use a new probabilistic programming library to:
Experiment with the amount of data needed to simulate a system
Perform Bayesian inference on an ABM
Implement data assimilation
These slides and abstract: https://urban-analytics.github.io/dust/presentations.html