An expanding collection of tools I've created to aid in my own research. Most popular are functions that provide a streamlined, customizable summary of regressions (including robust standard error support) in the console, HTML/LaTeX/Word tables, and coefficient plots. A few other tools have been described in my blog and elsewhere.

South Carolina COVID-19 Dashboard

This is an interactive dashboard created to visualize the spread of COVID-19 in the state of South Carolina. It updates daily.


Previously part of the `jtools` package, this provides a set of functions that aid the analysis of statistical interactions. It implement simple slopes analysis, the calculation of Johnson-Neyman intervals, and plots for understanding interaction effects.


This is an R package that contains tools for the management and analysis of panel data. The main contributions are a `panel_data` object class designed to make panel-specific functions easier to handle and `wbm`, a procedure for fitting within-between regression models.


This R package implements a technique from [Allison, Williams, and Moral-Benito (2017)](https://www3.nd.edu/~rwilliam/dynamic/AllisonWilliamsMoralBenito2017.pdf) and the Stata [command](https://www3.nd.edu/~rwilliam/dynamic/SJPaper.pdf) `xtdpdml`. It combines maximum likelihood estimation, the logic of cross-lagged panel models, and the robustness to spuriousness of fixed effects estimators into `dpm`, dynamic panel models. Written with help from Richard Williams and Paul Allison.

Group Mean Differences

This is a Shiny app to demonstrate to students how much randomly assigned groups can differ on some measure without it actually being a significant difference.

Building a statistical model for field goal kicker accuracy

Here I discuss statistical and logistical details involved in my attempts at modeling kicker talent. This includes model selection as well as a brief history of research. I use some quantitative assessments to compare my approach to previous attempts and it does quite well.

Does news coverage boost support for presidential candidates in the Democratic primary?

Observers note that in the 2020 Democratic primary, candidate support in polls is closely correlated with the amount of attention candidates get in the news. This begs the question of whether and how these two things might be causally related, particularly whether news coverage is helpful to candidates. Here I show some evidence that news coverage does indeed help.

Comparing `panelr` and `plm`

It has been just a little more than a day since I announced my new R package, `panelr`, to the wider world. There's at least one comparable package for R, called `plm`, which is very good and should be particularly appealing for economists. This leads to the understandable question as to how `panelr` differs from `plm`.

A new package for panel data analysis in R

It has been a long time coming, but my R package panelr is now on CRAN. Since I started work on it well over a year ago, it has become essential to my own workflow and I hope it can be useful for others. panel_data object class One key contribution, that I hope can help other developers, is the creation of a panel_data object class. It is a modified tibble, which is itself a modified data.