The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

staggR

staggR makes it easy to fit linear difference-in-differences models where interventions are staggered over time across multiple cohorts. The approach uses cohort- and time-since-treatment specific difference-in-differences parameters, and it provides convenience functions both for specifying the model and for flexibly aggregating coefficients to answer a variety of research questions.

Installation

install.packages("staggR")

Example

This is a basic example which shows you how to solve a common problem:

library(staggR)

#' Fit the staggered DiD model
sdid_hosp <- staggR::sdid(hospitalized ~ cohort + yr,
                          df = hosp,
                          intervention_var  = "intervention_yr",
                          .vcov = sandwich::vcovCL,
                          cluster = hosp$county)

summary(sdid_hosp)
#> 
#> Supplied formula:
#> hospitalized ~ cohort + yr
#> 
#> Fitted formula:
#> hospitalized ~ cohort_5 + cohort_6 + cohort_7 + cohort_8 + yr_2011 + 
#>     yr_2012 + yr_2013 + yr_2014 + yr_2015 + yr_2016 + yr_2017 + 
#>     yr_2018 + yr_2019 + yr_2020 + cohort_5:yr_2010 + cohort_5:yr_2011 + 
#>     cohort_5:yr_2012 + cohort_5:yr_2013 + cohort_5:yr_2015 + 
#>     cohort_5:yr_2016 + cohort_5:yr_2017 + cohort_5:yr_2018 + 
#>     cohort_5:yr_2019 + cohort_5:yr_2020 + cohort_6:yr_2010 + 
#>     cohort_6:yr_2011 + cohort_6:yr_2012 + cohort_6:yr_2013 + 
#>     cohort_6:yr_2014 + cohort_6:yr_2016 + cohort_6:yr_2017 + 
#>     cohort_6:yr_2018 + cohort_6:yr_2019 + cohort_6:yr_2020 + 
#>     cohort_7:yr_2010 + cohort_7:yr_2011 + cohort_7:yr_2012 + 
#>     cohort_7:yr_2013 + cohort_7:yr_2014 + cohort_7:yr_2015 + 
#>     cohort_7:yr_2017 + cohort_7:yr_2018 + cohort_7:yr_2019 + 
#>     cohort_7:yr_2020 + cohort_8:yr_2010 + cohort_8:yr_2011 + 
#>     cohort_8:yr_2012 + cohort_8:yr_2013 + cohort_8:yr_2014 + 
#>     cohort_8:yr_2015 + cohort_8:yr_2016 + cohort_8:yr_2018 + 
#>     cohort_8:yr_2019 + cohort_8:yr_2020
#> 
#> Residuals:
#>      Min      Q1  Median     Q3  Max
#>  -0.8007 -0.3788 -0.2139 0.4595 0.84
#> 
#> Coefficients:
#>              term     estimate   std_error     t_value p_value    
#>       (Intercept)  0.228155340 0.031307912   7.2874659 3.2e-13 ***
#>          cohort_5  0.088156223 0.028579679   3.0845771 0.00204 ** 
#>          cohort_6 -0.159451272 0.016375109  -9.7374175 0.0e+00 ***
#>          cohort_7  0.075133698 0.018413395   4.0803827 0.00005 ***
#>          cohort_8 -0.237490795 0.003992926 -59.4778926 0.0e+00 ***
#>           yr_2011  0.055426750 0.027992651   1.9800465 0.04771 *  
#>           yr_2012  0.025200365 0.048720589   0.5172426 0.60499    
#>           yr_2013  0.047663300 0.034037028   1.4003367 0.16142    
#>           yr_2014  0.110034046 0.035770010   3.0761536 0.00210 ** 
#>           yr_2015  0.130370006 0.039124167   3.3322116 0.00086 ***
#>           yr_2016  0.150645703 0.037030770   4.0681224 0.00005 ***
#>           yr_2017  0.193950839 0.030086602   6.4464189 1.2e-10 ***
#>           yr_2018  0.198984915 0.042004187   4.7372638 2.2e-06 ***
#>           yr_2019  0.239084188 0.032639986   7.3248863 2.4e-13 ***
#>           yr_2020  0.226537217 0.032775690   6.9117451 4.9e-12 ***
#>  cohort_5:yr_2010 -0.075771022 0.048141117  -1.5739357 0.11551    
#>  cohort_5:yr_2011 -0.073492699 0.044324381  -1.6580649 0.09731 .  
#>  cohort_5:yr_2012  0.008214848 0.029858839   0.2751228 0.78322    
#>  cohort_5:yr_2013  0.018970874 0.035225443   0.5385560 0.59020    
#>  cohort_5:yr_2015  0.031183015 0.047308110   0.6591473 0.50981    
#>  cohort_5:yr_2016  0.073549064 0.039113486   1.8804016 0.06006 .  
#>  cohort_5:yr_2017  0.111184626 0.039801432   2.7934831 0.00522 ** 
#>  cohort_5:yr_2018  0.181886621 0.033410927   5.4439263 5.3e-08 ***
#>  cohort_5:yr_2019  0.188240613 0.019982991   9.4200420 0.0e+00 ***
#>  cohort_5:yr_2020  0.257882482 0.043630603   5.9105871 3.4e-09 ***
#>  cohort_6:yr_2010  0.192165497 0.040766852   4.7137683 2.4e-06 ***
#>  cohort_6:yr_2011  0.083833784 0.021768788   3.8511001 0.00012 ***
#>  cohort_6:yr_2012  0.130360273 0.017418812   7.4838784 7.4e-14 ***
#>  cohort_6:yr_2013  0.103217201 0.054669436   1.8880239 0.05903 .  
#>  cohort_6:yr_2014  0.019231429 0.018934185   1.0156988 0.30978    
#>  cohort_6:yr_2016  0.039597597 0.014527663   2.7256687 0.00642 ** 
#>  cohort_6:yr_2017 -0.017621795 0.045720916  -0.3854209 0.69993    
#>  cohort_6:yr_2018 -0.065811049 0.024388171  -2.6984823 0.00697 ** 
#>  cohort_6:yr_2019 -0.071375212 0.028617604  -2.4941016 0.01263 *  
#>  cohort_6:yr_2020 -0.083590800 0.043178676  -1.9359278 0.05289 .  
#>  cohort_7:yr_2010 -0.028841089 0.040446429  -0.7130688 0.47581    
#>  cohort_7:yr_2011 -0.097944813 0.025984565  -3.7693458 0.00016 ***
#>  cohort_7:yr_2012 -0.046622258 0.030682909  -1.5194862 0.12865    
#>  cohort_7:yr_2013 -0.036083533 0.037344341  -0.9662383 0.33393    
#>  cohort_7:yr_2014 -0.053870348 0.028528256  -1.8883155 0.05899 .  
#>  cohort_7:yr_2015 -0.042354696 0.030159042  -1.4043780 0.16022    
#>  cohort_7:yr_2017  0.123013287 0.013601784   9.0439086 0.0e+00 ***
#>  cohort_7:yr_2018  0.131938968 0.032104648   4.1096531 0.00004 ***
#>  cohort_7:yr_2019  0.159289976 0.015694481  10.1494260 0.0e+00 ***
#>  cohort_7:yr_2020  0.189118922 0.037494013   5.0439765 4.6e-07 ***
#>  cohort_8:yr_2010  0.169335455 0.030086602   5.6282679 1.8e-08 ***
#>  cohort_8:yr_2011  0.162863929 0.014472854  11.2530626 0.0e+00 ***
#>  cohort_8:yr_2012  0.231193914 0.024009151   9.6294083 0.0e+00 ***
#>  cohort_8:yr_2013  0.185971220 0.018317313  10.1527563 0.0e+00 ***
#>  cohort_8:yr_2014  0.166476981 0.011655637  14.2829587 0.0e+00 ***
#>  cohort_8:yr_2015  0.050939971 0.009977242   5.1056167 3.3e-07 ***
#>  cohort_8:yr_2016  0.059839177 0.007804591   7.6671765 1.8e-14 ***
#>  cohort_8:yr_2018  0.009379666 0.013978605   0.6710016 0.50222    
#>  cohort_8:yr_2019  0.036917934 0.003425534  10.7772793 0.0e+00 ***
#>  cohort_8:yr_2020 -0.003312873 0.016633407  -0.1991698 0.84213    
#> 
#> Significance codes: < 0.001: '**'; < 0.01: '**'; < 0.05: '*'; < 0.1: '.'
#> Residual standard error: 0.4632 on 30985 degrees of freedom
#> R^2: 0.118875596336873; Adjusted R^2: 0.117339991437799

#' What is the effect of the intervention in the post-intervention period?
ave_coeff(sdid = sdid_hosp, 
          coefs = select_period(sdid_hosp, period = "post"))
#>          est        se         pval sign         lb        ub     n
#> 1 0.09962262 0.0159212 3.890523e-10  *** 0.06841706 0.1308282 11745

Getting help

If you encounter a problem, please file an issue with a minimal reproducible example on GitHub.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.