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).