Course information


Course time & location

  • Tuesdays and Thursdays, 4pm - 5:30pm
  • Weiser 747

UPDATE: Starting Tuesday 3/17/20, all classes and office hours will be held online via Bluejeans. The meeting information for joining via Bluejeans is included on Canvas. Office Hours on Thursday 3/12/20 will also be held via Bluejeans, from 3:30-4:30.


Instructor & office hours

  • Prof. Marisa Eisenberg (she/her)
  • Email: marisae@umich.edu
  • Office Hours
    • Tuesdays 2pm – 3pm, Thursdays 3pm - 4pm
    • 711 Weiser Hall. Sometimes I may hold office hours in the School of Public Health (5166 SPH II). I’ll send an announcement to the class if this is the case.

Syllabus

  • Syllabus - includes course overview, grading information, prerequisites, etc.

HW/Lab information


Course topics

Topics are subject to change and rearrangement! (We may also not get through all the topics listed)

Lecture slides, links to assignment instructions, and readings will be posted in each topic as we get to them.


1. Introduction to agent-based models (ABMs)

Topics covered: overview of basic concepts, coding intro, why model?, intro to ABMs and their pros/cons, philosophy of complex systems, emergent behavior/phenomena, classic examples in biological, social, and physical systems, etc.





2. Cellular automata

Topics covered: overview of basic cellular automata (CA) concepts, emergent behavior, classes of CA, examples of CA (e.g. Conway’s Game of Life), coding and analysis methods for CA, applications



3. Networks





4. Parameter sweeps, sampling, and sensitivity analysis



5. Advanced/additional topics

Topics: Uncertainty, inference robustness, model comparison, MCMC, working with micro- and macro-level data and ABMs, more advanced environments (e.g. GIS), game theory

  • Lecture 12: Model Analysis (3/24/20)


  • Lecture 14: Introduction to parameter estimation (4/2/20)
    • Thinking about the challenges of linking data with highly complex models, and what these approaches can (and can’t) tell you
    • Slides

  • Lecture 15: Parameter estimation with ABMs and complex systems models
  • Lecture 16: ABM Environments
    • Slides
    • Mapping tutorials
      • Making 3 Easy Maps in Python - the point map example here may be particularly useful for visualizing agents on a map (where you can define their x,y locations in terms of e.g. latitude and longitude). This uses the module folium, which is one of the common mapping packages.
      • Making maps in Basemap This is another package for mapping, and you can similarly do point maps and plot other features on the map. The syntax for basemap seems pretty straightforward, so this may be a useful package to consider also. There’s an additional tutorial for Basemap here also.

Additional useful info

Useful links and extra readings will be posted here.

Coding and typesetting resources

Overall Coding Resources

ABM Resources

  • Modules/packages for agent-based modeling

Math Resources


Books used in the course


Interesting papers and extra readings