Changelog
v1.0.8
On the dev branch; not yet on CRAN.
Changes that affect results
-
Effective F with several instruments.
eff_F()now partials the intercept, controls and fixed effects out of the instruments, and appliesweights, as Olea and Pflueger (2013) require. Earlier versions did not, so with two or more instruments the value could be wrong (e.g., 24.55 instead of 85.75). Results with one instrument, including every example in this manual, are unchanged. -
Factor instruments. A factor or character instrument now enters every statistic as dummies for all levels but the first. Earlier versions used it as one numeric column for the standard, robust and cluster F, the AR test and
tF(). In one 8-level example from Lal et al. (2024), the AR p-value changes from 0.967 to 0.175. No example in this manual has a factor instrument.
Bug fixes
-
eff_F()andivDiag()stop with a clear error when the instruments are collinear, instead of returningNAor a wrong number. -
eff_F()standardizes the instruments internally, so instruments on very different scales or with large means no longer break it. With two or more clustering variables it skips this step, because lfe’s repair of the cluster variance depends on scale.
v1.0.7
On CRAN since 2026-10-30.
Changes that affect results
-
AR confidence set on the whole real line.
AR_test()now finds the Anderson-Rubin set exactly. Earlier versions searched only within 10 SEs of the 2SLS estimate and could miss part of it, e.g.,[0.0642, Inf)instead of(-Inf, -1.1605] Union [0.0640, Inf). The AR test of zero effect is unchanged. -
ltz()withweights. The adjustment now uses weighted cross-products. In 5 Sensitivity Tests, the LTZ estimate changes from 3.6088 (SE 0.8112) to 3.7441 (SE 0.7568). (#18, thanks @Rok-Novak) -
tF()with a very weak first stage. Below F = 4,tF()returns an interval covering the whole real line, as Lee et al. (2022) require. Earlier versions used the critical value at F = 4, so the interval was too narrow. -
Reproducible bootstrap.
seednow reaches the parallel workers (through doRNG), so results no longer depend on the number of cores or change from run to run. For a givenseed, results differ from v1.0.6.
New features
-
Fuzzy RD designs.
ivDiag()gainsrunning,cutoff,rd.poly,bandwidthandkernel, so that only the jump at the cutoff identifies the effect. See 4 Fuzzy RD Designs. -
New dataset
mcclendon(McClendon 2014), now the main example in this manual and the help pages. -
This manual is now a Quarto book in
tutorial/.
Bug fixes
- The parallel bootstrap works again; a July 2024 change on GitHub made it fail with “invalid connection”. CRAN v1.0.6 was not affected. (#12, thanks @kjohnsen)
- Harmless “NaNs produced” warnings in bootstrap resamples are silenced.
Other changes
- Bootstrap workers start with
parallelly::makeClusterPSOCK(); future is no longer imported. (#15, thanks @HenrikBengtsson) -
ivDiag()no longer callsset.seed(). - DESCRIPTION gives the address for bug reports (#8, thanks @olivroy; #16, thanks @HenrikBengtsson) and cites Lal et al. (2024) by DOI.
- Dataset help pages give their sources and licenses. Unit tests added; unused imports removed.
v1.0.6
- Fixed clustering in
ivDiag()andAR_test(). (Thanks to Michael Allen @mmooddaa for reporting.)
v1.0.5
- Fixed bugs in
plot_coef().
v1.0.4
-
ivDiag()can skip the bootstrap (bootstrap = FALSE). First version on CRAN.
v1.0.2
- First complete version.