Course information


Course time & location

  • Tuesdays and Thursdays, 1 - 2:30pm
  • Weiser Hall 269
  • The course will be in person, but occasional course meetings may also be held via zoom as needed, at: https://umich.zoom.us/j/95806757765 (password information is on Canvas)

Instructors & office hours

  • Instructor: Prof. Marisa Eisenberg (she/her)
    • Email:
    • Office Hours - Weiser Hall 735
      • Typically after class, from 2:20-3pm on Tuesdays and Thursdays (but we can set up other times as needed if those don’t work)

  • GSI: Conrad Kosowsky
    • Email:
    • Office Hours
      • Regular office hours: 703 Weiser Hall
        • Time TBD
      • By appointment in 715A Weiser Hall

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.






  • Extra Notes: Chaos Game!

3. Networks



  • Lecture 8: Adaptive networks, mean-field approximation of networks

  • Lab 3: Network Dynamics

4. Parameter sweeps, sampling, and sensitivity analysis



  • Lecture 11: Analyzing Model Outputs

  • Lab 4: Parameter sampling and sensitivity


5. Parameter estimation from data

Topics covered: parameter estimation, MCMC, parameter identifiability & uncertainty, model comparison (e.g. AIC/BIC/etc)


  • Lecture 13: Introduction to parameter estimation
    • Thinking about the challenges of linking data with models, and what these approaches can (and can’t) tell you
    • Maximum likelihood methods, optimization basics


  • Lecture 15: Identifiability

  • Lecture 16: Model selection and the AIC

6. Advanced/additional topics

  • Potential Topics:
    • decision/game theory
    • chaos and fractals
    • classic example complex systems models (Kuramoto oscillators, Sugarscape, etc.)
    • more advanced environments (e.g. putting ABMs on GIS)
    • active subspaces, dimension reduction
    • model selection
    • clustering, PCA
    • machine learning and complex systems
    • webpage scraping, basics of API’s, pulling data from various places (social media, google, government sources)



  • Lecture 20: Machine learning and AI

  • Additional Materials: ABM Environments and Mapping/GIS
    • 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

Math Resources


Books used in the course


Interesting papers and extra readings