All Projects → tyleransom → DScourseS20

tyleransom / DScourseS20

Licence: MIT License
ECON 5253: Data Science for Economists, University of Oklahoma (Spring 2020)

Programming Languages

Jupyter Notebook
11667 projects
TeX
3793 projects
HTML
75241 projects
PostScript
262 projects
r
7636 projects
julia
2034 projects

ECON 5253: Data Science for Economists (Spring 2020)

Join the chat at https://gitter.im/DScourseS20/community

Tyler Ransom
Email [email protected]
Office 322 CCD1
Office Hours M 9:30-10:30am, Th 12-1pm
GitHub tyleransom
  • Meeting day/time: T,Th 1:30-2:45pm, CCD1, Room 174
  • Office hours also available by appointment
  • This course takes inspiration and extensively borrows materials from similar courses taught by Jason DeBacker (U of South Carolina) and Rick Evans (U of Chicago). Thanks to them for providing a framework for using GitHub as a class collaboration tool and for insights into teaching programming skills.

Course description

Data science is a rapidly developing field that combines the recent Big Data revolution with ever-developing statistical algorithms to inform business and policy decisions. Nearly every company you've heard of uses data science to optimize its services: Netflix uses it to recommend new programs to its viewers, Amazon uses it to determine how much it should charge for its Prime services. This class will provide students with an overview of the data science workflow, from collecting raw data to drawing a set of insights from which a decision maker can make informed decisions. Along the way we will broadly cover a variety of advances in data collection, data storage, visualization, machine learning and econometrics topics, as well as teaching and reinforcing good programming practices. The primary goal of this course is to provide you, the student, with a set of skills that will allow you to compete for a data science job.

Course Objectives and Learning Outcomes

By the end of the course, students should be able to do the following:

  1. Explain the data science workflow from start to finish
  2. Be able to collect data from online sources via APIs or scraping
  3. Describe similarities and differences between econometrics and machine learning
  4. Explain what data science is, and how Big Data differs from other types of data
  5. Demonstrate good programming practices by writing code that can allow for easy collaboration with others
  6. Understand the differences between prediction and causality, and the cases in which each is useful

In this course students, through lecture and application, will learn about:

  • Good programming practices, including how to write code collaboratively with others
  • Software to increase research productivity including:
    • LaTeX/Markdown
    • git
  • Software to collect & clean data, and estimate statistical models:
    • R
    • Julia
    • Python
  • Software to manage big data sets:
    • SQL
    • RDDs (Resilient Distributed Datasets) --- Spark, Hadoop
  • How to access and utilize cluster computing resources
    • SSH (Secure Shell)
    • SFTP (Secure File Transfer Protocol)
    • SLURM (Simple Linux Utility for Resource Management)
  • Methods to gather and handle data including:
    • Costs and benefits of different data structures
    • Using APIs
    • Web scraping
  • Best practices for cleaning and visualizing data
  • Computational methods to:
    • Optimize and find roots of functions
    • Perform Monte Carlo simulations
    • Run computations in parallel using multiple processors (time permitting)
  • Basics for modeling different types of data
  • Machine learning basics:
    • Supervised vs. unsupervised learning
    • The five "tribes" of machine learning: how they are interconnected, and how they differ
    • Machine learning vs. econometrics: prediction vs. causality
    • Evaluating model performance
  • Using economic models to inform policy decisions
    • Computing structural models

Grades

Grades will be based on the categories listed below with the corresponding weights.

Component Percent
Class Participation 10%
Problem Sets 35%
Exam & Quizzes 20%
Final project 35%
Total points 100%

Final grades will be assigned according to the standard cutoffs (90%+ for an A, 80%-89.99% for a B, etc.).

  • Participation:

    • An important part of learning is face-to-face interaction. Thus, some of your grade will depend on attendance and active participation in class meetings.
  • Problem sets: will be assigned approximately weekly throughout the semester.

    • You must write and submit your own computer code, although I encourage you to collaborate with your fellow students. I DO NOT want to see a bunch of copies of identical code. I DO want to see each of you learning how to code these problems so that you could do it on your own.
    • Problem set solutions, both written and code portions, will be turned in via a pull request from your private GitHub.com repository which is a fork of the class master repository on my account. (You will need to set up a GitHub account if you do not already have one.)
    • Written solutions must be submitted as PDF documents or Jupyter Notebooks.
    • Problem sets will be due on the day listed in the Daily Course Schedule section of this syllabus (see below) unless otherwise specified. Late problem sets will not receive any credit. Partially completed problem sets will receive partial credit.
  • Exam & Quizzes:

    • We may periodically have in-class quizzes as low-stakes ways to get feedback
    • There will be a written final exam, but no midterm
  • Final Project:

    • Collect data on and analyze a research question of your choosing, using methods taught in this course
    • Write up a ~10 page (12pt font, double spaced, excluding References, Figures, and Tables) summary of your findings, including discussion about what prior studies of the same topic have found, as well as citations to prior studies
    • Turn in the written summary report and a GitHub repository containing all materials required to reproduce the results
    • Summary report should be written in LaTeX or RMarkdown and turned in as a PDF (source code for the summary report should also be included in your GitHub repository)
    • An example of what the final product should look like is here, with LaTeX source code here and BibTeX source code here.
    • A detailed rubric for the final project is here

Communication

  • I will always be available via email, and in person during office hours.
  • Additionally, I have set up a Gitter community (see the badge at the top of this document) where I am hoping you can chat with each other about programming or other questions you have regarding the course. I will also be a participant in that community.

Daily Course Schedule

(Will be continuously updated throughout the semester)

Date Day Topic Due
Jan 14 T What is data science / big data / why is it important? (Slides)
Jan 16 Th Git, GitHub, computing environment, and Coding best practices (Notes) and Slides by Grant McDermott Read Gentzkow & Shapiro's handbook; Ch. 1 of The Master Algorithm; register for GitHub account
Jan 21 T Linux command line (Grant McDermott's slides), SSH, accessing OSCER (Notes); Git Tutorial (p. 19 here; adding upstream repositories here) PS 1
Jan 23 Th Overview of Data Scientists' tools (Notes)
Jan 28 T Using data: data types, storage (Notes) PS 2
Jan 30 Th Big Data: SQL (Notes) & RDDs (link); running jobs on the OSCER cluster
Feb 4 T Sampling & storing Big Data (Notes) PS 3
Feb 6 Th Web scraping/APIs to gather data (Notes; Grant McDermott's Lecture Notes; Ethics in Web Scraping; rvest demonstration slides at 2018 useR conference; tidyverse cheat sheet; Grant McDermott's Lecture Notes on R language basics)
Feb 11 T Web scraping/APIs to gather data (Notes); Grant McDermott's Lecture Notes PS 4
Feb 13 Th Intro to Julia (Julia notes; Ivan Rudik's programming notes; Julia's "Learning Julia" page)
Feb 18 T ggplot2 (Basics; Kieran Healy's book)
Feb 20 Th Getting to know your data: descriptive statistics, cleaning, tips, tricks, transformations, visualization (Notes; HTML slides) PS 5
Feb 25 T Modeling continuous and discrete variables (Notes) HTML slides); Simple R script
Feb 27 Th Using JuMP to optimize cool stuff [Jupyter Notebook; Julia Code] (in previous years: Linear Algebra Introduction / Review (Handout))
Mar 3 T Introduction to optimization (Notes) PS 6
Mar 5 Th Writing and optimizing functions in R, Python, and Julia (Notes)
Mar 10 T Writing and optimizing functions in R, Python, and Julia (Notes) PS 7
Mar 12 Th Debugging strategies and simulations (Notes)
Mar 17 T No class (Spring break)
Mar 19 Th No class (Spring break)
Mar 24 T Intro to Machine Learning (Notes) PS 8
Mar 26 Th Supervised ML: Regularization, measuring model fit, tuning with cross-validation, the elastic net model (Notes)
Mar 31 T Supervised ML: The 5 Tribes of Machine Learning (Notes) PS 9
Apr 2 Th Unsupervised ML: Clustering (Notes)
Apr 7 T Unsupervised ML: Dimensionality reduction and reinforcement learning (Notes) PS 10
Apr 9 Th Machine learning vs. econometrics (Notes)
Apr 14 T Structural modeling: static discrete choice (Slides) PS 11
Apr 16 Th Structural modeling: dynamic discrete choice (Slides)
Apr 21 T Structural modeling: dynamic discrete choice (Slides)
Apr 23 Th Final Project presentations (Rubric)
Apr 28 T Final Project presentations (Rubric)
Apr 30 Th Final Project presentations (Rubric) PS 12 (optional)
May 4 Th Final Exam (in class, 1:30-3:30pm) Final project due (Scoresheet)

Helpful Links

Books

University Policies

Religious Observance

It is the policy of the University to excuse the absences of students that result from religious observances and to reschedule examinations and additional required classwork that may fall on religious holidays, without penalty.

Reasonable Accommodation Policy

If a student requires an accommodation based on disability, the student should meet with me in my office during the first week of the semester. Student responsibility primarily rests with informing faculty at the beginning of the semester and in providing authorized documentation through designated administrative channels. The Disability Resource Center is located in the University Community Center at 730 College Avenue (405-325-3852).

Academic Integrity:

I do not tolerate academic misconduct, and neither does the University of Oklahoma. I will not hesitate to fail students who do not fully comply with the University's academic misconduct policy. If you find yourself contemplating cheating, plagiarism, or other forms of academic misconduct, please come see me first. Help is available if you are struggling. I want everyone in the class to try their best and to do their own work. Please be advised that I reserve the right to utilize anti-plagiarism resources such as TurnItIn when grading assignments.

Title IX Resources and Reporting Requirement

For any concerns regarding gender-based discrimination, sexual harassment, sexual assault, dating/domestic violence, or stalking, the University offers a variety of resources. To learn more or to report an incident, please contact the Sexual Misconduct Office at (405) 325-2215 (8 to 5, M-F) or [email protected]. Incidents can also be reported confidentially to OU Advocates at (405) 615-0013 (phones are answered 24 hours a day, 7 days a week). Also, please be advised that a professor/GA/TA is required to report instances of sexual harassment, sexual assault, or discrimination to the Sexual Misconduct Office. Inquiries regarding non-discrimination policies may be directed to: Bobby J. Mason, University Equal Opportunity Officer and Title IX Coordinator at (405) 325-3546 or [email protected]. For more information, visit http://www.ou.edu/eoo.html.

Adjustments for Pregnancy/Childbirth Related Issues

Should you need modifications or adjustments to your course requirements because of documented pregnancy-related or childbirth-related issues, please contact your professor or the Disability Resource Center at (405) 325-3852 as soon as possible. Also, see http://www.ou.edu/eoo/faqs/pregnancy-faqs.html for answers to commonly asked questions.

Reasonable Accommodations for Students with Disabilities

If a student requires an accommodation based on disability, the student should meet with me in my office during the first week of the semester. Student responsibility primarily rests with informing faculty at the beginning of the semester and in providing authorized documentation through designated administrative channels. The Disability Resource Center is located in Goddard Hall (405-325-3852).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].