- Use
wooldridge::mrozinstead of downloading mroz.dta fromfmwww.bc.eduin F-statistic vignette and tests
-
New function
lsmm()fits the double logistic structural mean model (LSMM) of Vansteelandt and Goetghebeur (2003), which estimates a causal odds ratio, by two-step GMM with multiple instruments as described by Clarke et al. (2015). It hasprint()andsummary()methods, the summary includes the Hansen J-test of the overidentifying restrictions, and covariates are handled as inmsmm(). It is the same estimator as theivlsmmcommand in the Stata package ivonesamplemr, and its estimates agree withivlsmm. -
tsps()andtsri()withlink = "logmult"now converge to the solution of the estimating equations. Previously the GMM optimizer often stopped at its iteration limit, giving slightly inaccurate estimates and a non-convergence warning. The starting values are now obtained by solving the second stage estimating equations exactly by Newton-Raphson, rather than from a gamma regression with zero outcomes replaced by 0.001. The estimates now agree with the Stata commandsivtspsandivtsriin the ivonesamplemr package. -
tsps()andtsri()no longer give a spurious non-convergence warning when the optimizer has reached the minimum of the GMM objective function (which is 0 because these models are exactly identified). -
msmm()withestmethod = "gmm"or"gmmalt"now uses a tighter convergence tolerance for the Nelder-Mead optimizer (reltol = .Machine$double.eps,maxit = 1E4), so that the estimates converge to the minimum of the GMM objective function. Previously the default tolerance could stop the optimizer early, so estimates depended on the starting values and could differ in the second or third decimal place from the solution of the estimating equations. Estimates from exactly identified models now agree withivtools::ivglm()G-estimation and with Stata'sivpoisson gmm, multiplicative. -
The parameters in the output of
tsps()andtsri()are now labelled by stage and variable name. First stage parameters are prefixedstage1:, the second stage exposure and covariate parameters take their variable names (previously, e.g.,xhatxhatandxhatcovariatesfortsps()), and the first stage residual intsri()is labelledstage1:residuals(previouslyresres). The same labels are used when the user specifiest0, andtsps()andtsri()now give a clear error message ift0has the wrong length. The documentation oft0has been corrected. -
The print and summary methods for
tsps()andtsri()fits now only exponentiate the exposure parameter in the causal risk ratio or causal odds ratio table. Previously all the second stage parameters were exponentiated and presented as causal ratios, including the intercept, any covariates, and, fortsri(), the coefficient of the first stage residuals. -
msmm()now distinguishes covariates (variables included in both the exposure and instrument parts of the formula) from exposures. The causal risk ratio table (crrci) now only contains the exposures; previously it also reported the exponentiated covariate coefficients as causal risk ratios. The covariate adjusted model itself is unchanged, and is the same model as fitted by Stata'sivpoisson gmm, multiplicativewith exogenous covariates. The returned object has a newcovariateselement, the print methods list the covariates adjusted for and note thatE[Y(0)]is then estimated at covariate values of 0, and covariate adjustment is documented with an example in?msmm. Covariates with the"tsls"and"tslsalt"methods now give a clear error message.
-
Bump roxygen2 to 8.0.0.
-
Fixed a bug in
fsw()for models fitted byivreg::ivreg()which reported conditional F statistics for the wrong variables when exogenous covariates were listed before the exposures in the model formula -
Fixed a bug in
tsps()andtsri()which produced incorrect estimates when exogenous covariates were listed before the exposure or the instruments in the model formula -
tsps()andtsri()now give a clear error message when more than one exposure is specified, when a variable is namedy(which is reserved for internal use), and their print methods no longer error when a user specified unnamedt0is used with a log-link or logit-link model -
fsw()now detects ordered factor exposures, and its factor exposure error message is restored for theivreg::ivreg()method and fixed for thefixest::feols()method -
msmm()now gives its intended error message for non-integer outcomes and a corrected message for negative outcomes -
tsps()andtsri()are now roughly 2 times faster because the first stage regression is computed once instead of on every evaluation of the GMM moment functions, and the moment conditions in all three GMM based estimators are now vectorised -
Internal refactoring: the four
fsw()methods now share a common engine, the eighttsps()/tsri()moment functions are reduced to one per estimator, and dead code has been removed
fsw()can now calculate Sanderson-Windmeijer conditional F statistics for models fitted byAER::ivreg(),estimatr::iv_robust(), andfixest::feols()(thanks @nvitt)
-
Fixed a bug in
fsw()when an exogenous covariate was a factor (thanks @ZoeReed) -
The
fsw()function now returns an error if any of the exposures are factors
- Replaced dots checking with rlang instead of the ellipsis package (thanks @olivroy).
-
Add
CITATIONfile -
Tweak formatting of code in helpfile examples and vignettes
-
Add subsection to README about GNU Fortran requirement for old versions of the gmm package on macOS
-
Bumped the minimum required version of R to be 4.1.0. This is because of the same requirement in pbkrtest, which is a dependency of car which is a dependency of ivreg
-
Bumped version of roxygen2 used to create the package documentation
-
Made use of ellipsis
...in several function definitions safer using the ellipsis package -
Bumped required version of R to 4.3.0 because the Matrix package, which is a dependency of ivreg now requires R 4.4.0. CRAN retain a binary version of Matrix 1.6-5 for the previous release of R, and so the minimum version of R can be 4.3.0 rather than 4.4.0.
-
Update roxygen2 version used to generate documentation
-
Reduce the number of functions imported from other packages
-
Make use of packages in Suggests list conditional on their availability
-
Remove ivtools from Suggests due to the current failure of its ahaz dependency package to build on 3 of the CRAN Linux sub-architectures
- Fix an issue causing an
R CMD checknote in R 4.2.0
- Initial submission to CRAN