Instrumental-Variable Regression

Fit instrumental-variable regression by two-stage least squares. This is equivalent to direct instrumental-variables estimation when the number of instruments is equal to the number of predictors.

ivreg(formula, instruments, data, subset, na.action, weights, offset, contrasts = NULL, model = TRUE, y = TRUE, x = FALSE, ...)
formula, instruments
formula specification(s) of the regression relationship and the instruments. Either instruments is missing and formula has three parts as in y ~ x1 + x2 | z1 + z2 + z3 (recommended) or formula is y ~ x1 + x2 and instruments is a one-sided formula ~ z1 + z2 + z3 (only for backward compatibility).
an optional data frame containing the variables in the model. By default the variables are taken from the environment of the formula.
an optional vector specifying a subset of observations to be used in fitting the model.
a function that indicates what should happen when the data contain NAs. The default is set by the na.action option.
an optional vector of weights to be used in the fitting process.
an optional offset that can be used to specify an a priori known component to be included during fitting.
an optional list. See the contrasts.arg of model.matrix.default.
model, x, y
logicals. If TRUE the corresponding components of the fit (the model frame, the model matrices , the response) are returned.
further arguments passed to ivreg.fit.

ivreg is the high-level interface to the work-horse function ivreg.fit, a set of standard methods (including print, summary, vcov, anova, hatvalues, predict, terms, model.matrix, bread, estfun) is available and described on summary.ivreg.

Regressors and instruments for ivreg are most easily specified in a formula with two parts on the right-hand side, e.g., y ~ x1 + x2 | z1 + z2 + z3, where x1 and x2 are the regressors and z1, z2, and z3 are the instruments. Note that exogenous regressors have to be included as instruments for themselves. For example, if there is one exogenous regressor ex and one endogenous regressor en with instrument in, the appropriate formula would be y ~ ex + en | ex + in. Equivalently, this can be specified as y ~ ex + en | . - en + in, i.e., by providing an update formula with a . in the second part of the formula. The latter is typically more convenient, if there is a large number of exogenous regressors.


ivreg returns an object of class "ivreg", with the following components:


Greene, W. H. (1993) Econometric Analysis, 2nd ed., Macmillan.

See Also

ivreg.fit, lm, lm.fit

  • ivreg
  • print.ivreg
library(AER) ## data data("CigarettesSW", package = "AER") CigarettesSW$rprice <- with(CigarettesSW, price/cpi) CigarettesSW$rincome <- with(CigarettesSW, income/population/cpi) CigarettesSW$tdiff <- with(CigarettesSW, (taxs - tax)/cpi) ## model fm <- ivreg(log(packs) ~ log(rprice) + log(rincome) | log(rincome) + tdiff + I(tax/cpi), data = CigarettesSW, subset = year == "1995") summary(fm) summary(fm, vcov = sandwich, df = Inf, diagnostics = TRUE) ## ANOVA fm2 <- ivreg(log(packs) ~ log(rprice) | tdiff, data = CigarettesSW, subset = year == "1995") anova(fm, fm2)
Documentation reproduced from package AER, version 1.2-5, License: GPL-2 | GPL-3

Community examples

Looks like there are no examples yet.