ivreg()
objects
with a dedicated manual page ?summary.ivreg
. Along with the summary()
method this also documents the methods for confint()
, anova()
,
Anova()
, and linearHypothesis()
. All of these take an argument vcov.
so that alternative (e.g., so-called "robust") covariance matrices can be
plugged in. The vcov.
processing is made somewhat more convenient and
consistent (suggested by Diogo Ferrari).hatvalues.ivreg()
(reported by Vasilis Syrgkanis).Enhanced predict.ivreg()
method, which optionally provides standard errors,
confidence intervals, and prediction intervals for predicted values.
The tinytable
rather than the kableExtra
package (recently not actively maintained)
is used now for the modelsummary
table shown in the package vignette (contributed
by Vincent Arel-Bundock).
Further small improvements in the package vignettes.
Improve non-anchored links in manual pages (prompted by CRAN).
Achim Zeileis took over maintenance, both on CRAN and on GitHub. The GitHub source repository is now at https://github.com/zeileis/ivreg/ with the web page at https://zeileis.github.io/ivreg/.
Avoid partial argument matches by calling model.matrix(..., contrasts.arg = ...)
rather than just contrasts
(reported by Kevin Tappe).
Make names of arguments of influencePlot.ivreg()
and outlierTest.ivreg()
consistent with the corresponding generic functions from the car package.
method
is now an explicit argument to ivreg()
and not just passed through ...
to ivreg.fit()
.
More efficient computation of regression diagnostics (thanks to improvements implemented by Nikolas Kuschnig).
In models without any exogenous variables (i.e., not even an exogenous (Intercept)
)
the $instruments
element in the fitted model object was erroneously empty, leading
to some incorrect subsequent computations. Also the $endogenous
element was an
unnamed (rather than named) vector. Both problems have been fixed now.
(Reported by Luke Sonnet.)
In the summary()
method the default is now diagnostics = NULL
(rather than
always TRUE
). It is now only set to TRUE
if there are both endogenous and
instrument variables, and FALSE
otherwise. (Reported by Brantly Callaway.)
Small fixes.
Three-part right-hand side formula
s are supported now to facilitate specification
of models with many exogenous regressors. For example, if there is one exogenous
regressor ex
and one endogenous regressor en
with instrument in
, a formula
with three parts on the right-hand side can now also be used: y ~ ex | en | in
.
This is equivalent to specifying: y ~ en + ex | in + ex
.
Robust-regression estimators are provided as an alternative to ordinary
least squares (OLS) both in stage 1 and 2 by means of rlm()
from package
MASS. Specifically, in addition to
2-stage least squares (2SLS, method = "OLS"
, default) ivreg()
now supports
2-stage M-estimation (2SM, method = "M"
) and 2-stage MM-estimation (2SMM,
method = "MM"
).
Dedicated confint()
method allowing specification of the variance-covariance
matrix vcov.
and degrees of freedom df
to be used (as in the summary()
method).
Include information about which "regressors"
are endogenous variables and
which "instruments"
are instruments for the endogenous variables in the
fitted model objects from ivreg()
and ivreg.fit()
. Both provide elements
$endogenous
and $instruments
which are named integer vectors provided
that endogenous/instrument variables exist, and integers of length zero if
not.
Include df.residual1
element in ivreg
objects with the residual degrees
of freedom from the stage-1 regression.
Add coef(..., component = "stage1")
, vcov(..., component = "stage1")
, and
confint(..., component = "stage1")
for the estimated coefficients and
corresponding variance-covariance matrix and confidence intervals from the
stage-1 regression (only for the endogenous regressors). (Prompted by a request
from Grant McDermott.)
Add residuals(..., type = "stage1")
with the residuals from the stage-1
regression (only for the endogenous regressors).
The coef()
, vcov()
, and confint()
methods gained a complete = TRUE
argument
assuring that the elements pertaining to aliased coefficients are included.
By setting complete = FALSE
these elements are dropped.
Include demonstration how to use ivreg()
results in model summary tables
and plots using the modelsummary
package.
Small edits to the Diagnostics vignette.
Initial version of the ivreg
package: An implementation of instrumental
variables regression using two-stage least-squares (2SLS) estimation, based on
the ivreg()
function previously in the
AER package. In addition to standard
regression functionality (parameter estimation, inference, predictions, etc.)
the package provides various regression diagnostics, including hat values,
deletion diagnostics such as studentized residuals and Cook's distances;
graphical diagnostics such as component-plus-residual plots and added-variable
plots; and effect plots with partial residuals.
An overview of the package, documentation, examples, and vignettes are provided
at https://john-d-fox.github.io/ivreg/
.