First CRAN release. (The 0.3.0 submission was revised at CRAN's request to
document the return value of the confint() method; the feature set below is
unchanged.)
New outcome and treatment model families, completing parity with the Stata
lateffects omodel/tmodel options:
omodel gains "probit" (binary outcome, probit link) and "flogit" /
"fprobit" for fractional outcomes in [0, 1] (e.g. proportions or
rates). tmodel gains "probit". The fractional families share all
estimation with their binary counterparts and only relax the response to the
unit interval. They reuse the probit/logit quasi-likelihood scoring already
validated for the instrument propensity score, and the test suite checks them
against first principles: the fractional families coincide with their binary
counterparts on a 0/1 response, and every fit reproduces the corresponding
weighted glm estimate.Postestimation diagnostics mirroring the Stata lateffects suite (StataNow):
complier_means() reports population versus complier covariate means, the
complier averages computed with the normalized Abadie-kappa weights (Stata's
estat compliers). kappa_weights() returns those weights (the genkappa
object) for use in other complier summaries.balance_test() implements the Imai and Ratkovic (2014) overidentification
test for whether the instrument propensity score balances the covariates
(Stata's latebalance overid); cluster-robust when the fit is.balance(detail = TRUE) adds IPW-weighted arm means and unweighted and
weighted variance ratios alongside the standardized mean differences
(Stata's latebalance summarize).plot() gains type = "balance_density" (covariate kernel densities by
instrument arm, raw versus weighted; Stata's latebalance density) and a
geom = "density" option for type = "overlap" (Stata's lateoverlap).These diagnostics are verified against their standard references: the Abadie-kappa identity for the complier means, the Imai and Ratkovic (2014) statistic for the balance test, and the bootstrap for the standard errors.
method = "kappa" (tau_a),
"kappa0" (tau_a,0), and "kappa10" (tau_a,10), validated against the
Stata kappalate command. Cluster-robust SEs, sampling weights, the
bootstrap, and (for "kappa"/"kappa0") Fieller confidence sets carry
over from the existing machinery.tau_u, unnormalized IPW is tau_a,1.ivmodel = "probit" (kappalate's zmodel(probit)) for the
weighting estimators ("ipw" and the kappa methods), completing
coverage of the kappalate command's options.drlate_compare() now reports each kappa estimator's own normalization
in the normalized column, and ?drlate documents that the kappa
denominators are kappa-weight means — estimating the same complier share
as the IPW first-stage contrast, but as a different sample statistic.Changes from an internal econometric audit (Monte Carlo evidence in
data-raw/mc-review.R and data-raw/mc-weak2.R):
w1 moment condition nonzero under pweights and invalidates the joint
variance; with uniform weights the two coincide exactly (all validated
configurations are unaffected).denom^2 = q * V_dd, single-point tangency) instead of
collapsing them into "whole line", and the complement-set print states
that the set is unbounded.F < 10
(|z| < 3.16) instead of |z| < 2, and the printout reports
z^2 ~ F.drlate_compare() documents that IPW/RA rows use reduced adjustment
sets (estimator and specification change together) and de-duplicates
rows after normalization auto-switching.dr_hausman() documents that the LATT and ATT halves adjust on the
instrument- and treatment-equation covariates respectively.Extensions beyond the Stata original:
plot() methods for instrument propensity score overlap,
covariate balance (love plot), and implied-weight distributions;
balance() returns standardized mean differences; print()/summary()
report first-stage strength and flag weak instruments.drlate(vcov = "bootstrap") provides
nonparametric bootstrap standard errors and percentile confidence
intervals (cluster bootstrap when cluster is supplied), with optional
parallelism.confint(method = "fieller")
inverts the joint test of the numerator and denominator, returning
bounded, complement, or whole-line confidence sets as appropriate.dr_hausman() implements the doubly robust test of
unconfoundedness from Słoczyński, Uysal & Wooldridge (2022, Section 5) —
proposed in the paper but not available in the Stata package — with an
analytic standard error from one jointly stacked moment system.drlate_compare() runs IPWRA/IPW/AIPW/RA in
one call with a comparison table and dot-whisker plot.drlate v1.0.0 (SSC S459708).pstolerance, osample).