# Complex Systems Summer School 2019-Tutorials

### From Santa Fe Institute Events Wiki

Please use this space to organize any tutorial you would like to offer your peers. It is useful to keep these in chronological order of occurrence (or at least proposed times) and include the time in the title, so that people can see what fits in their schedule at a glance by looking at the table of contents.

# Upcoming Tutorials

## Introduction to Bayesian hypothesis testing and modeling - Fabian Dablander (Sunday, 6/30, 3:30PM - 5:30PM)

Slides available from https://fdabl.github.io/assets/talks/Bayes-Tutorial-Santa-Fe.

Over the last thirty years, Bayesian inference has revolutionized statistics --- a discipline that is fraught with controversies, filled with individuals who hold strong opinions, and marred by a poor public image. In this tutorial, I (a) give a brief historical overview of statistics as a discipline; (b) provide a hands-on introduction to Bayesian hypothesis testing which provides a viable alternative to classical hypothesis testing; and (c) discuss good Bayesian modeling practices in the context of more complicated statistical models that go beyond simple hypotheses tests; this includes prior specification, model selection, and model checking.

### Prior to the tutorial

The tutorial will have hands-on exercises, so please bring a Laptop (and possibly pen and paper). For (b), we will use JASP (https://jasp-stats.org/) which is a user-friendly, open-source alternative to SPSS that focuses on Bayesian hypothesis testing. For (c), we will use the R package *brms* which interfaces with Stan (https://mc-stan.org/). If you want to follow the hands-on exercises, please install these software ahead of time.

This tutorial assumes no background knowledge of Bayesian statistics. If you want to prepare a little bit, I recommend you check out the following two blog posts:

- https://fdabl.github.io/r/Regularization.html (relevant to part (b) of the tutorial)
- https://fdabl.github.io/r/Law-of-Practice.html (relevant to part (c) of the tutorial)

### What questions do you have?

### Interested Participants

- Bakus
- Arta
- Elissa
- Robert
- Toni
- Kate
- Bhargav
- Ernest
- Andrea
- Henri
- Bhartendu

## Implementing Neural Network models with PyTorch - Germán Kruszewski (Monday 6/31, 4pm - 5:30pm)

I will be showing how you can use thee PyTorch library to quickly write and train a Neural Network model. I will be mostly following the examples available here: https://github.com/pytorch/tutorials and here https://github.com/init27Lab/DL-Toolkit

### Interested Participants

- Elissa
- Paula
- Shihui

## Regression and the Central Limit Theorem - John Schuler Cancelled

Given the short list of interested participants, I will happily just talk about this to anyone who asks. I know everyone is busy with projects at this point.

### Interested Participants

- A.Schaefer

## Collaborative listening and emergent computation through social dance

We're offering a mini-series introducing not one, not two, but THREE different styles of social dance! Come learn the basics with us (4:30-5:30) and follow it up with a little social dance practice and play time (5:30-6:00). Come learn to walk with four feet and listen with your heart! No partner, no experience, no dance shoes needed! (In fact, we'll all be dancing in socks.) Leads and follows can be any gender and role-swap is welcome! (In fact in Argentine tango, this is tradition--back in the day, men were only allowed to dance with women after they've spent 2-3 years learning by following other men!)

The Tuesday workshop will take place in the 2nd floor lounge of the dorms. The Wednesday and Thursday workshops will meet in the dance studio in the fitness center (from the main entrance, go down the hall and turn the corner to the left; the door will be on your right).

Bonus: there will be excellent Salsa opportunities downtown later in the week and a tango practica on Friday: here's your chance to prepare!

### Suggested Date and Time

We realize this is slightly short notice-- if you're really enthusiastic but can't make these times, please let us know and we'll consider rescheduling for next week.

### Tuesday, July 25, 4:30-6:00pm, dorm 2nd floor - Salsa [On1] (Luther + Jessica)

#### Interested Participants

- Kate
- Anshuman
- Bhargav
- Yuka

### Tuesday, July 25, 7:00-8:30pm, dorm 2nd floor - Argentine Tango (Adam + Jessica)

#### Interested Participants

- Adam
- Winnie
- Kate
- Anshuman
- Bhargav

### [CANCELLED - for now, anyway - we may try again next week!] Swing [Lindy Hop / East Coast Swing] (Henri + Jessica)

#### Interested Participants

- Kate
- Anshuman
- Bhargav
- Yuka
- Andrea

## Learning to Flow: Morning Yoga Edition

Join Elissa in the dance studio on Tuesday and Thursday mornings for a relaxing, yet empowering, vinyasa flow! We'll learn together to link breath to movement, as we find space to flow with ease. No experience necessary! Mats available in the dance studio.

### Thursday, June 13, 7:00-7:50am

### Tuesday, June 18 and Thursday, June 20, 7:00-7:50am

### Thursday, June 27, 7:00-7:50am

### Tuesday, July 2 and Thursday, July 4, 7:00-7:50am

# Completed Tutorials

## Networks, Network Science, and Python - Brennan Klein, Hunter Wapman, Al Kirkley (Sunday, 6/23, 7:30PM - 9:00PM)

Hi I'm Brennan. And I'm Hunter. And I'm Alec. (*in unison*) And we like networks. Specifically we would like to offer some support / tutorials to anyone who would like to learn about network science (e.g., structure, dynamics, visualization, etc.), all in python. We've got a few things we would love to cover, but on top of that, if there are specific questions / tools that anybody would like us to cover, include them below (with hyperlinks if possible), and we'll see if we can tie it in. The goal is that attendees will leave with 1) new friends, 2) a joie de vivre for the network science life and 3) new Jupyter notebook(s) with fun python code that you can build upon in your own work.

### Prior to the tutorial

Github link **here**! The README.md will walk you through installing the main packages and software we'll be using. These mainly include:

- Jupyter notebooks
- networkx
- numpy
- scipy
- matplotlib

### Wish-list of topics

- Network visualization in networkx
- Disease / spreading dynamics
- Community detection and modularity in networks

### Interested Participants

- Al(ec)
- Hunter
- Brennan
- David
- Laura
- Patrick
- Erwin
- Bakus
- April
- Arta
- Dries
- Ian
- Elissa
- Andrea
- Kate
- Billy
- Pam
- Luther
- Koissi
- Kazu
- Ludvig

## Classical Hypothesis Testing- The Course You Think You Don't Need - John S. Schuler (7:00 PM 6/20) NEW TIME Distance Learning 2

Classical statistics does not get much love these days with all the newer techniques. While I applaud these new techniques and use them myself, I think there is value in these older methods. In particular, classical statistics is an excellent framework for thinking about replication. I envision this as the first in a series of three talks but for now I am announcing one. I will cover hypothesis testing with minimal prerequisites. My focus will be on the logic behind hypothesis testing and common misunderstandings thereof.

### Suggested Date and Time

I am willing to move this if desired. I will find a classroom and update this space.

### Interested Participants

Sign up is not required but it would be helpful to have some idea.

- Patrick
- Kate
- Pam
- Arta
- Shihui
- Yuka

## Nonlinear Dynamics Q&A I w/ D. Borrero (6/10)

I've taught upper division/intro graduate level Nonlinear Dynamics a couple of times before. Given the quick pace of some of the lectures by the SFI faculty and people's various levels of familiarity with this material, I'd be glad to lead a couple of review/question and answer/clarification sessions for any of the Nonlinear Dynamics lectures (Liz Bradley, Josh Garland, Dave Feldman, Vicky Yang) if anybody is interested. I would also be glad to consult on any projects involving dynamical systems. The idea is to keep it pretty informal, low key, and organic. All levels of expertise welcome!

If you can't make it, feel free to come chat with me.

Informal discussion of various topics in Nonlinear Dynamics. Topics covered included:

- Taylor series and linearization of nonlinear systems
- Why the stability of the fixed point has to do with the slope of map at the fixed point (i.e., f'(x*))
- How to think about dynamical systems with continuous time systems ("flows") that are governed by differential equations in 1-dimension
- Why trajectories in chaotic systems diverge exponentially and where exactly a Lyapunov exponent comes from
- Floquet multipliers and diverge of trajectories in maps
- Where the quadratic term in the logistic map comes from

## Nonlinear Dynamics Q&A II w/ D. Borrero (6/15)

Took an in-depth look at dynamics and bifurcations in 1D flows

## Nonlinear Dynamics Q&A III w/ D. Borrero (6/16)

Informal discussion of various topics in Nonlinear Dynamics. Topics covered included:

- 1D maps
- Period doubling route to chaos

## Natural Language Processing and Computational Linguistics in Python - Bhargav Srinivasa Desikan

I thought that doing an introductory level tutorial in Natural Language Processing and Computational Linguistics in Python would be useful/fun - it usually adds a very informative level of complexity to projects, even when it isn't the primary mode of inquiry. If you don't have textual data, I can also guide you through the process of mining data off the internet, either through web scraping or twitter - you can also do cool stuff like mailing entire WhatsApp chat histories to yourself, which means we could also do some funky meta Santa Fe WhatsApp chat analysis!

I've conducted similar tutorials before (PyData LA 2018, PyData Berlin 2017), and I also share all my material on GitHub in the form of Jupyter Notebooks. I've linked the videos and code so that you can have a brief look to see if it's stuff you might be interested in.

I'd be doing:

- finding text data
- pre-processing text data
- identifying your problem
- part-of-speech tagging, named entity recognition
- topic modelling
- text classification
- text generation with neural nets
- word embeddings

### Preparing for the tutorial

Following the instructions under the setup section in this link will help a bunch! I will spend the first 20 minutes helping with setup before moving on. If you would want to run all the code in the tutorial while I am, you would need python and jupyter installed.

### Suggested Date and Time

The tutorial will be from 4-6 pm on Monday (17th June), in the main lecture hall. I'll be happy to do smaller more detailed sessions and maybe a second tutorial if folks want it!

### Interested Participants

(if anyone would like to conduct the tutorial with me or add more to it, very happy to collaborate!)

- Bhargav (presenter)
- Arta Cika
- Xin Ran
- Daniel Borrero
- Jackie Brown
- Pam Mantri
- Dee Romo
- Jeongki Lim
- Ernest Aigner
- Robert Coulter
- Winnie Poel
- Travis Moore
- Pablo M. Flores
- Catherine Brinkley
- Andrew Gillreath-Brown
- Kate
- Bakus
- Dries
- Bhartendu
- Kenzie Givens
- Wenqian
- Jordi
- Elissa

### Note

This would require pretty basic python programming skills, but I'll be walking everyone through the code. Even if you can't code it might be useful to know what kind of problems you can solve, and I'd be happy to link to resources to learning enough python to get started on your own. There has been interest in doing a general Machine Learning tutorial too: we can talk about this during the text tutorial to figure out what might be most useful for everyone!

I'm happy to chat with folks for suggestions on if they'd want more/less than what has been described!

(this is what I look like if you want to find me)

## Agent-Based Modelling of Complex Systems - Patrick Steinmann (07:00 PM 6/18)

Agent-based modelling can be a powerful for modelling complex system problems. But what *is* agent-based modelling? And how do we go about it in a structured and scientific way? And once we've made a model... what do we do with it? I have a background in policy analysis and simulation studies, and am offering this tutorial for those interested in using ABM (specifically NetLogo, as it is very accessible) in current or future work. I will cover some basic systems simulation theory, go over one structured method of making ABMs (from Agent-Based Modelling of Socio-Technical Systems, eds. van Dam, Nikolic, and Lukszo), and finally look at some ways the finished model could be used/explored - specifically, sensitivity analysis and scenario discovery. We will also briefly look at how NetLogo can be connected to tools such as Python, R, and Mathematica, and what possibilities that opens up.

I would also be glad to consult on any projects involving ABM/systems simulation.

### Suggested Date and Time

Tuesday 18JUN, 7:00 PM, lecture hall.

### Interested Participants

Sign up below in the bulleted list below if you are interested. If you have experience with ABM and would like to share your expertise, please feel free to join. You can add more slots as needed:

- Patrick Steinmann (presenter)
- Jeongki Lim
- Dries Daems
- Bhartendu Pandey
- Travis
- Pam
- Arta
- Ludvig
- Ian
- Wenqian
- Jordi
- Elissa
- Bakus
- Andrew
- Luther

If you can't make it, feel free to come chat with me.

## Data Visualization and Aesthetics - Ethan Nadler (8:00 PM 6/19)

This will be a tutorial/"formal" discussion (i.e. with slides) aimed at data visualization in science, and its relation to art and aesthetics. It will roughly be organized as follows, depending on interest:

1. Overview/live-coding tutorial based on a Python data visualization workshop I've run in the past;

2. Discussion of specific examples: each attendee will send a favorite plot/visualization that *they have made* (likely from past research), and we'll discuss each as a group;

3. Discussion of general principles: interesting topics include, but are not limited to:

- What makes a plot beautiful?
- Do scientific data visualization and art have the same aesthetic aims?
- Are aesthetic biases reflected in scientific data visualization? (If so, how?)

### Suggested Date and Time

8:00 PM on Wednesday, 6/19.

### Interested Participants

- Ethan Nadler (presenter)
- Daniel Borrero
- Arta Cika
- Kenzie Givens
- Catherine Brinkley (but only if time changes... I have to pick up kids at 5.30pm)
- Patrick
- Erwin
- Kate
- Bakus
- Bhartendu
- Ernest
- Travis
- Pam
- Henri
- Ludvig
- Ignacio
- Mikaela
- Winnie
- Andrew
- John Malloy
- Ian
- Chris B-J

## Distribution Fitting and Maximum Likelihood Estimation - Chris Quarles (2:00 PM, Thursday 6/20 in Distance Learning Room 2)

Researchers and statistics students regularly assume that their data is normally distributed, and network degree distributions are often assumed to follow a power law. These are typically incorrect assumptions. It is important to examine the *shape* of the data. And, if the data reasonably fits a nice, parametric shape, we might want to infer the best parameter(s) for that shape. For a power law, the parameter is the exponent. For normally distributed data, we might want to infer the mean and standard deviation. This can give insight about the process that generated the data and the analyses that we can do with it. Maximum likelihood estimation (MLE) is the workhorse method to do this distribution fitting.

In this workshop, you will learn how to fit distributions using MLE, and when it might be useful. I'll go over the basic ideas behind distribution fitting, including likelihood and log-likelihood. We will work through the calculation of a maximum likelihood estimator together, and talk about how to choose the best-fit distibution. You'll get the opportunity to do some hands-on calculation and find a best fit distribution for a dataset.

You'll want to bring a pencil and paper/notebook, and a computer with some basic statistical software that you know how to use (R, Python, Excel, etc.). You also will need to be able to take derivatives to get the most of the workshop.

### Suggested Date and Time

Thursday, June 20th at 2:00 PM.

This week is filling up with tutorials. If there are enough people interested, I can do this again during week 3. Text me on Slack if you can't make this, and would rather do it the following week.

### Interested Participants

- Jessica Lee
- Bhartendu
- Henri
- Wenqian
- Arta
- Elissa
- Mikaela

## Kirsten Moy, 7:00pm, Tuesday June 17

Kirsten Moy will be leading a tutorial/discussion about her work on complexity in community development. Come on along

From her description:

A review of highlights from four other case studies in addition to Detroit on the utilization of complexity thinking in community development. Case studies include a microenterprise development organization in the San Francisco area that works from an ecosystem perspective; a national organization that brings NGOs and City Government together in a dozen cities to create greater financial security for low and moderate-income families; an organization that provides support to family networks in different cities to collectively bring people out of poverty; and the only community revitalization nonprofit in the US (now in 18 cities) that consciously and intentionally works from a complexity science framework.

Following the presentation, there will be an opportunity for participants to present their specific questions to the researcher and the group.

Please sign up so we have some idea of who will be around and can choose the appropriate room

- JP
- Ahyan Panjwani
- Dee
- Ignacio
- Winnie
- Elissa

## Introduction to Agent-Based Modelling with NetLogo - Patrick Steinmann (07:00 PM 6/25)

We will create an agent-based model in NetLogo together from scratch, and then test it to understand the emergent behavior (and possible interventions). I will go over some NetLogo design philosophy basics, the user interface, the world view, coding, data in- and output including GIS, and verification. We will also use BehaviorSpace (structured simulation experiments) to do some simple sensitivity analysis.

Required software will be NetLogo (v6.0 or higher, you probably have v6.04 or 6.1 if you recently installed) and some data analysis platform that you are comfortable with and can handle CSVs (Excel, R, Python, etc).

I would also be glad to consult on any projects involving ABM/systems simulation.

### Suggested Date and Time

Tuesday 25JUN, 7:00 PM, lecture hall.

### Interested Participants

Sign up below in the bulleted list below if you are interested. If you have experience with ABM and would like to share your expertise, please feel free to join. You can add more slots as needed:

- Patrick Steinmann (presenter)
- Dries
- Luther
- Koissi

If you can't make it, feel free to come chat with me.

## Liquid brains - an overview - Jordi (08:00 PM 07/01)

We will introduce the idea of liquid brains and how it emerges from thinking about biological (and non-biological) systems with many neural-like agents interacting in a complex manner. We will outlay the fundamental differences between solid and liquid neural systems, focusing on biological examples, in particular: animal brains (solid), insect colonies (liquid) and the mammalian immune system (very liquid). By using the tools of statistical physics it is possible to describe this set of systems under the same framwork.

Download the slides File:Statistical Physics of Liquid Brains An Overview - CSSS 2019 Slides.pdf. (These slides contain all the appendix discussions that I alluded to during the talk.) You can also check out the paper or the special issue.

### Suggested Date and Time

Tuesday 01JUL, 8:00 PM, lecture hall.

If you want any more information, references, or just to discuss further; contact me at jpinerfe@gmail.com.