Generates a StudySpecification
object with the given specifications.
Source: R/StudySpecification.R
StudySpecification_objects.Rd
Generate a randomized control treatment StudySpecification
(rct_spec()
), or an observational StudySpecification (obs_spec()
), or
a regression discontinuity StudySpecification (rd_spec()
).
Usage
rct_spec(formula, data, subset = NULL, na.fail = TRUE)
rd_spec(formula, data, subset = NULL, na.fail = TRUE)
obs_spec(formula, data, subset = NULL, na.fail = TRUE)
rct_specification(formula, data, subset = NULL, na.fail = TRUE)
rd_specification(formula, data, subset = NULL, na.fail = TRUE)
obs_specification(formula, data, subset = NULL, na.fail = TRUE)
obsstudy_spec(formula, data, subset = NULL, na.fail = TRUE)
obsstudy_specification(formula, data, subset = NULL, na.fail = TRUE)
Arguments
- formula
a
formula
defining theStudySpecification
components. SeeDetails
for specification.- data
the data set from which to build the StudySpecification. Note that this data need not be the same as used to estimate the treatment effect; rather the
data
passed should contain information about the units of treatment assignment (as opposed to the units of analysis).- subset
optional, subset the data before creating the
StudySpecification
object- na.fail
If
TRUE
(default), any missing data found in the variables specified informula
(excluding treatment) will trigger an error. IfFALSE
, non-complete cases will be dropped before the creation of theStudySpecification
Details
The formula must include exactly one unit_of_assignment()
to
identify the units of assignment (one or more variables). (uoa
,
cluster
, or unitid
are synonyms for
unit_of_assignment
; the choice of which has no impact on the
analysis.) If defining an rd_spec
, the formula must also include a
forcing()
entry. The formula may optionally include a block()
as well.
Each of these can take in multiple variables, e.g. to pass both a
household ID and individual ID as unit of assignment, use uoa(hhid,
iid)
and not uoa(hhid) + uoa(iid)
.
The treatment variable passed into the left-hand side of formula
can either be logical
, numeric
, or character
. If it
is anything else, it attempts conversion to one of those types (for
example, factor
and ordered
are converted to numeric
if the levels are numeric
, otherwise to character
). If the
treatment is not logical
or numeric
with only values 0 and
1, in order to generate weights with ate()
or ett()
, the
dichotomy
argument must be used in those functions to identify the
treatment and control groups. See ett()
for more details on specifying a
dichotomy
.
There are a few aliases for each version.
Examples
data(simdata)
spec <- rct_spec(z ~ unit_of_assignment(uoa1, uoa2) + block(bid),
data = simdata)
data(schooldata)
spec <- obs_spec(treatment ~ unit_of_assignment(schoolid) + block(state),
data = schooldata)