Shiro Kuriwaki

Assistant Professor of Political Science, Yale University

Resident Fellow at the Institution of Social and Policy Studies



The following screencasts were designed as short guided introductions for particular statistical concepts. They are probably best used as links in problem sets that students can refer to at their own pace, before they set out to tackle harder, open-ended questions.

All code uses R conforms to the tidyverse style and often uses tidyverse syntax, and uses real dataset that can be loaded on any R environment quickly (e.g. through a package built-in dataset). It is geared towards advanced undergraduates or a masters class where students already have some familiarity with probability and inference.

Contents: Package Setup, lm, LASSO, Fixed Effects, Instrumental Variables, Regression Discontinuity, Diff-in-Diff, Creating Functions, Maps in ggplot

Package Setup

Installing vs. loading scripts, basic structure and sections of a script, function masking.


Running linear regression, formulas, options to the lm function:

  1. Basic syntax of lm
  2. Summary of lm objects (extracting stats from summary)
  3. Different types of formula specifications (logs, squared terms, factors)
  4. Coefficient plots using ggplot2 (putting 1-3 together)


Using cv.glmnet to

  1. Setup and pre-processing: testing and training data, formula with ".", model matrix creation.
  2. Fitting and understanding cv.glmnet: penalty terms, cross validation, LASSO algorithm, picking a penalty.
  3. Making predictions with predict with the testing dataset, generic functions.

Fixed Effects

Fixed effects syntax with lfe::felm, adjusting for clustered errors.

Instrumental Variables

Instrumental variables as an omitted variable problem, using both AER::ivreg and lfe::felm packages. Uses the proximity to college dataset by Card (1994).

Regression Discontinuity

Visualizing regression discontinuity, estimating coefficients with interactions, polynomials, and local linear regression.

  1. Visualizing RD
  2. Estimating RD coefficients


Time series data, long form, plotting time trends, interactions, 2 by 2 difference-in-differences, DID with fixed effects.

  1. Creating and understanding variables for DID
  2. Implementing DID in a two-way FE regression

Thanks to Oscar Torres-Reyna for the data (

Defining Functions

Arguments, body, and return statement. Also see the function basics tutorial for background.

Maps in ggplot

Choropleth maps using sf objects in ggplot2, merging in other variables into sf dataframes.