Nothing
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.teeMod
objects now optionally include methodological developments from a forthcoming paper from Wasserman and Hansen:
1) 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.
2) 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.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 aboveStudySpecification
are now optional, though recommended.dichotomy
argument of lmitt()
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.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.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.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()
.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
.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
.ate()
and ett()
no longer produce 0's or NA's for StudySpecification
objects created with multiple columns specifying the blocking schemelmitt()
fit due to NA
's in the covariates or treatment assignment*_design
is now *_spec
(e.g. rct_design
is now rct_spec
)Design
objects are now StudySpecification
objectsdesign=
argument to lmitt()
is now specification=
.absorb = TRUE
to lmitt
without specifying a block proceeds as if the entire sample is a single block.dichotomy
and moderator variables in lmitt()
could lead to errors due to too long of a formula.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.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
aloneDesign
objects are created with a tibble
cov_adj()
does not error with covariance adjustment models fit with robustbase::glmrob()
estfun.teeMod()
to account for a previously missing factor of sqrt(n / n_C) applied to contributions to the covariance adjustment model estimating equationsvcov_tee()
clusters units of assignment in small blocks, blocks with only one treated or control unit, together.vcov_tee()
scales estimating equations using different constants than it did beforevcov_tee()
were liable to change from call to call as a result. This has been fixed.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 matrixlmitt()
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 estimationlmitt()
now accepts references to formula objectsestfun.teeMod
has been improvedabsorb=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 stratumvcov_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 inputrobustbase::glmrob
) is now accommodatedvcov_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.ate()
and ett()
, return weights of 0 rather than infinity for blocks that contain treated units but no control units.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.robustbase::lmrob
, are now accommodated given the reformulated estimating
equations in versions v0.1.1
and later.model.matrix()
in certain cov_adj()
calls has been resolved.teeMod
objects' matrix of estimating equations based on user-specified ID columns or unit of assignment ID's.stats::update
function can no longer be called on teeMod
objects.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
.teeMod
objects return more comprehensible labels for ITT effect outputs.expand.model.frame
calls on teeMod
objects and instead use the internal function .expand.model.frame_teeMod
when necessary.absorb
argument. Previous versions did not properly support this functionality. Valid standard errors under absorption, however, have not been confirmed.Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.