Function to process arguments passed to the main methods in the
did package as well as conducting some tests to make sure
data is in proper format / try to throw helpful error messages.
pre_process_did( yname, tname, idname, gname, xformla = NULL, data, panel = TRUE, allow_unbalanced_panel, control_group = c("nevertreated", "notyettreated"), anticipation = 0, weightsname = NULL, alp = 0.05, bstrap = FALSE, cband = FALSE, biters = 1000, clustervars = NULL, est_method = "dr", base_period = "varying", print_details = TRUE, pl = FALSE, cores = 1, call = NULL )
The name of the outcome variable
The name of the column containing the time periods
The individual (cross-sectional unit) id name
The name of the variable in
A formula for the covariates to include in the
model. It should be of the form
The name of the data.frame that contains the data
Whether or not the data is a panel dataset.
The panel dataset should be provided in long format -- that
is, where each row corresponds to a unit observed at a
particular point in time. The default is TRUE. When
is using a panel dataset, the variable
Whether or not function should
"balance" the panel with respect to time and id. The default
Which units to use the control group.
The default is "nevertreated" which sets the control group
to be the group of units that never participate in the
treatment. This group does not change across groups or
time periods. The other option is to set
The number of time periods before participating in the treatment where units can anticipate participating in the treatment and therefore it can affect their untreated potential outcomes
The name of the column containing the sampling weights. If not set, all observations have same weight.
the significance level, default is 0.05
Boolean for whether or not to compute standard errors using
the multiplier bootstrap. If standard errors are clustered, then one
Boolean for whether or not to compute a uniform confidence
band that covers all of the group-time average treatment effects
with fixed probability
The number of bootstrap iterations to use. The default is 1000,
and this is only applicable if
A vector of variables names to cluster on. At most, there
can be two variables (otherwise will throw an error) and one of these
must be the same as idname which allows for clustering at the individual
level. By default, we cluster at individual level (when
the method to compute group-time average treatment effects. The default is "dr" which uses the doubly robust
approach in the
Whether to use a "varying" base period or a "universal" base period. Either choice results in the same post-treatment estimates of ATT(g,t)'s. In pre-treatment periods, using a varying base period amounts to computing a pseudo-ATT in each treatment period by comparing the change in outcomes for a particular group relative to its comparison group in the pre-treatment periods (i.e., in pre-treatment periods this setting computes changes from period t-1 to period t, but repeatedly changes the value of t)
A universal base period fixes the base period to always be (g-anticipation-1). This does not compute pseudo-ATT(g,t)'s in pre-treatment periods, but rather reports average changes in outcomes from period t to (g-anticipation-1) for a particular group relative to its comparison group. This is analogous to what is often reported in event study regressions.
Using a varying base period results in an estimate of ATT(g,t) being reported in the period immediately before treatment. Using a universal base period normalizes the estimate in the period right before treatment (or earlier when the user allows for anticipation) to be equal to 0, but one extra estimate in an earlier period.
Whether or not to show details/progress of computations.
Whether or not to use parallel processing (not implemented yet)
The number of cores to use for parallel processing (not implemented yet)
Function call to att_gt