propertee 1.0.0
propertee 0.7.0
New Features
- HC2 and CR2 standard errors are now available for
teeMod
objects. CR2 corrections use a new, fast computation
that obviates the need for obtaining the spectral decomposition of
orthocomplements of cluster-specific projection matrices.
- Standard errors for
teeMod
objects now optionally
include methodological developments from a forthcoming paper from
Wasserman and Hansen:
- When computing the meat of the sandwich standard errors, the bias
correction to the residuals from estimating intent-to-treat effects is
allowed to differ from the bias correction to residuals from a
covariance adjustment model fit. The
type
argument of
vcov_tee()
determines the correction for the former, while
the cov_adj_rcorrect
argument determines the latter. The
findings from the simulation study in the paper inform the default
arguments of vcov_tee()
(and thus,
summary.teeMod()
): an HC2/CR2 correction for the residuals
of the intent-to-treat effect estimates, and an HC1/CR1 correction or
the residuals from the covariance adjustment model fit.
- When units used for estimating intent-to-treat effects also
contribute to fitting the covariance adjustment model, the boolean
loco_residuals
argument of vcov_tee()
indicates the residuals from effect estimation associated with
individuals in the overlapping units should be replaced with residuals
that use a leave-one-out estimate of the covariance adjustment model
parameters.
- Degrees of freedom provided in
summary.teeMod()
now
reflect clustering: for CR0 and CR1 standard errors, the associated
degrees of freedom are one less than the number of clusters used for
estimation; for CR2 standard errors, degrees of freedom are computed
using the approach of Imbens and Kolesár (2016) (see documentation of
.compute_IK_dof()
for citation) and leverage the fast
computational routine mentioned above
- Units of assignment in
StudySpecification
are now
optional, though recommended.
Bug Fixes
- Fix minor bugs with the
dichotomy
argument of
lmitt()
propertee 0.6.1
Bug Fixes
unit_of_assignment()
, unitid()
,
cluster()
, uoa()
, block()
, and
forcing()
no longer fail automatically when passed a
non-numeric or non-character variable. Now, they will first attempt to
convert the variable to a character variable.
- An internal routine in
vcov_tee()
no longer fails when
the environment in which vcov_tee()
is called differs from
the environment in which the StudySpecification
associated
with the teeMod
is created.
propertee 0.6.0
New Features
- In their
coefficients
element, teeMod
objects now report estimates of mean quantities in the control condition
(response and, if applicable, predictions of response). See the
lmitt()
man page for further details.
- Introduces
etc()
(effect of the treatment on controls)
and ato()
(overlap-weighted effect) weighting functions.
atc
is an alias for etc()
, while
olw
, owt
, and pwt
are aliases for
ato()
.
- Bump minimum R version to 4.1.0 to allow internal usage of pipes and
anonymous functions.
Bug Fixes
- When
ate()
-type functions are called with
data
arguments that do not include rows associated with all
units of assignment specified in the StudySpecification
object, the resulting weights reflect assignment probabilities across
all units of assignment in the StudySpecification
, not only
those represented in data
.
propertee 0.5.2
New Features
- Users fitting multiple
teeMod
objects to test multiple
outcome variables or different levels of a factor treatment variable can
pass those models to an mmm
object from the
multcomp
package, then pass the mmm
object to
multcomp
’s glht()
function to obtain standard
errors estimated using vcov_tee()
. This requires passing
vcov=vcov_tee
to glht()
. On a technical note,
**propertee**
now “suggests” installing
multcomp
.
Bug Fixes
- Weights produced by
ate()
and ett()
no
longer produce 0’s or NA’s for StudySpecification
objects
created with multiple columns specifying the blocking scheme
propertee 0.5.1
Bug Fixes
- Variance estimation routine fixes miscalculations in the case when
there is covariance adjustment and rows are omitted from the
lmitt()
fit due to NA
’s in the covariates or
treatment assignment
propertee 0.5.0
Major Changes
- All references to “design” have been changed to “specification”.
*_design
is now *_spec
(e.g. rct_design
is now rct_spec
)
Design
objects are now StudySpecification
objects
- The
design=
argument to lmitt()
is now
specification=
.
propertee 0.4.1
New Features
- Passing
absorb = TRUE
to lmitt
without
specifying a block proceeds as if the entire sample is a single
block.
Bug Fixes
- Fixed bug where use of
dichotomy
and moderator
variables in lmitt()
could lead to errors due to too long
of a formula.
propertee 0.4.0
New Features
lmitt()
, weights calculation functions
ate()
and ett()
, and assignment vector
generation function assigned()
now accept a
dichotomy
argument that can be used for studies with
time-varying treatment assignment. The Design
object,
unlike before, will not carry information about this dichotomization.
Instead, the information stored there reflecting when units were
assigned to treatment (if they were assigned to treatment) will be
leveraged to create inverse probability of assignment weights and
assignment indicators for datasets that have longitudinal data for the
study units.
Bug Fixes
- Standard error calculations no longer error when a
by
column is used to uniquely identify rows in the covariance adjustment or
effect estimation sample that cannot be distinguished with information
in the Design
alone
propertee 0.3.10
Bug Fixes
- Linking unit of assignments to clusters for variance estimation no
longer errors when
Design
objects are created with a
tibble
cov_adj()
does not error with covariance adjustment
models fit with robustbase::glmrob()
propertee 0.3.9
Bug Fixes
- Scaling constants have been updated in
estfun.teeMod()
to account for a previously missing factor of sqrt(n / n_C) applied to
contributions to the covariance adjustment model estimating
equations
propertee 0.3.8
Breaking Changes
- When model-based standard errors clustered at the level of
assignment are called for in a blocked design,
vcov_tee()
clusters units of assignment in small blocks, blocks with only one
treated or control unit, together.
propertee 0.3.7
Breaking Changes
vcov_tee()
scales estimating equations using different
constants than it did before
propertee 0.3.6
Bug Fixes
- Previous procedure for aligning contributions to estimating
equations from first-stage and second-stage models failed when column(s)
used for alignment had NA’s. Outputs of
vcov_tee()
were
liable to change from call to call as a result. This has been
fixed.
propertee 0.3.5
Improvements
- Diagonal elements of
vcov_tee()
matrices lacking
sufficient degrees of freedom for estimation are returned as NA’s rather
than numeric zeros. This is a deviation from the sandwich
package that aims to provide clarity to results that may otherwise
appear as negative diagonal elements of the vcov matrix
Bug Fixes
- When
lmitt()
is called with a blocked design and
absorb=TRUE
, the block-centered assignment and, if
applicable, moderator and assignment:moderator interaction columns, are
no longer centered on the grand mean of the column. This ensures blocks
that do not satisfy positivity of the assignment variable (or positivity
within a factor level) do not contribute to effect estimation
lmitt()
now accepts references to formula objects
propertee 0.3.4
Improvements
- Computational performance for
estfun.teeMod
has been
improved
Bug Fixes
- No more errors due to under-the-hood duplication of a moderator
variable
absorb=TRUE
estimates have been corrected in the case
when all observations in a stratum have 0 weights due to only treated or
control units of assignment existing in the stratum
propertee 0.3.3
Added Features
vcov_tee()
can accept user-created variance estimation
functions that start with the prefix .vcov_
; the
type
argument should take the rest of the function name as
an input
- Variance estimation for robust GLM’s (models fit using
robustbase::glmrob
) is now accommodated
- HC1 variance estimates are now accommodated
propertee 0.3.2
Added Features
- Effect estimation for continuous moderator variables is now
supported
Non-Breaking Changes
vcov_tee()
will return NA’s for the entries of the
covariance matrix that lack sufficient degrees of freedom for an
estimate. Informative warnings will accompany the matrix, further
indicating which standard errors have been NA’d out.
Bug Fixes
- Functions for generating weights,
ate()
and
ett()
, return weights of 0 rather than infinity for blocks
that contain treated units but no control units.
- Prior covariate adjustment fits were previously incorporated into
variance estimation differently depending on whether one created a
SandwichLayer
object before calling lmitt()
or
called cov_adj()
in the offset
argument of the
lmitt()
call. This has been corrected, and both ways return
the same variance estimates.
- Covariate adjustment models that admit rectangular bread matrices,
such as those produced by
robustbase::lmrob
, are now
accommodated given the reformulated estimating equations in versions
v0.1.1
and later.
- A contrasts error raised by
model.matrix()
in certain
cov_adj()
calls has been resolved.
propertee 0.3.1
Breaking Changes
- We now order
teeMod
objects’ matrix of estimating
equations based on user-specified ID columns or unit of assignment
ID’s.
- The
stats::update
function can no longer be called on
teeMod
objects.
Non-Breaking Changes
teeMod
objects now have lmitt_call
slots.
summary
calls on teeMod
objects accept
vcov.type
arguments to specify the desired standard error
calculation shown in the output. Acceptable types follow the
documentation for vcov_tee
.
- Shown or printed
teeMod
objects return more
comprehensible labels for ITT effect outputs.
R Version Compatibility
- Now compatible with R 4.3. Particularly, we advise users working
with R 4.3 to avoid
expand.model.frame
calls on
teeMod
objects and instead use the internal function
.expand.model.frame_teeMod
when necessary.
propertee 0.2.1
Breaking Changes
- Stratum fixed effects and subgroup moderating effects can now be
accounted for via the
absorb
argument. Previous versions
did not properly support this functionality. Valid standard errors under
absorption, however, have not been confirmed.
propertee 0.1.1
Breaking Changes
- We have reformulated the estimating equations used to derive
standard errors. In estimation settings we accommodate, testing has not
revealed any differences in standard error estimates between the
previous and current estimating equations, but we do not assure this is
the case for all possible situations.
propertee 0.0.1
- Compatible with R 4.2.3
- Introduces functionality for direct adjusted and design-informed
standard errors accommodating covariance adjustment in the model-based
setting
- Cluster-robust standard errors can only be estimated using the HC0
estimator