# Difference between revisions of "Complex Systems Summer School 2019-Tutorials"

### From Santa Fe Institute Events Wiki

(→Upcoming Tutorials) |
(→Past Tutorials) |
||

Line 170: | Line 170: | ||

* 1D maps | * 1D maps | ||

* Period doubling route to chaos | * Period doubling route to chaos | ||

+ | |||

+ | == Natural Language Processing and Computational Linguistics in Python - [[Bhargav_Srinivasa_Desikan|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 ([https://www.youtube.com/watch?v=mWSs325tGoc&t=70s PyData LA 2018], [https://www.youtube.com/watch?v=ZkAFJwi-G98&t=6s PyData Berlin 2017]), and I also share all my material on GitHub in the form of [https://github.com/bhargavvader/personal/tree/master/notebooks/text_analysis_tutorial 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 [https://github.com/bhargavvader/personal/tree/master/notebooks/text_analysis_tutorial 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 [[pythonhttps://www.python.org/downloads/|python]] and [https://jupyter.org/install 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!)<br> | ||

+ | |||

+ | # Bhargav (presenter)<br> | ||

+ | # 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! | ||

+ | |||

+ | ([[Bhargav_Srinivasa_Desikan|this]] is what I look like if you want to find me) | ||

+ | |||

==Agent-Based Modelling of Complex Systems - [https://wiki.santafe.edu/index.php/Patrick_Steinmann Patrick Steinmann] (07:00 PM 6/18)== | ==Agent-Based Modelling of Complex Systems - [https://wiki.santafe.edu/index.php/Patrick_Steinmann Patrick Steinmann] (07:00 PM 6/18)== |

## Revision as of 01:54, 24 June 2019

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.

## Contents

- 1 Upcoming Tutorials
- 1.1 Networks, Network Science, and Python - Brennan Klein, Hunter Wapman, Al Kirkley (Sunday, 6/23, 7:30PM - 9:00PM)
- 1.2 Classical Hypothesis Testing- The Course You Think You Don't Need - John S. Schuler (7:00 PM 6/20) NEW TIME Distance Learning 2
- 1.3 Data Visualization and Aesthetics - Ethan Nadler (8:00 PM 6/19)
- 1.4 Distribution Fitting and Maximum Likelihood Estimation - Chris Quarles (2:00 PM, Thursday 6/20 in Distance Learning Room 2)
- 1.5 Kirsten Moy, 7:00pm, Tuesday June 17

- 2 Past Tutorials
- 2.1 Nonlinear Dynamics Q&A I w/ D. Borrero (6/10)
- 2.2 Nonlinear Dynamics Q&A II w/ D. Borrero (6/15)
- 2.3 Nonlinear Dynamics Q&A III w/ D. Borrero (6/16)
- 2.4 Natural Language Processing and Computational Linguistics in Python - Bhargav Srinivasa Desikan
- 2.5 Agent-Based Modelling of Complex Systems - Patrick Steinmann (07:00 PM 6/18)

# Upcoming 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

### Notes

## 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

## 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

# Past Tutorials

## 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.