# ivreg

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

- Keywords
- regression

##### Usage

```
ivreg(formula, instruments, data, subset, na.action, weights, offset,
contrasts = NULL, model = TRUE, y = TRUE, x = FALSE, …)
```

##### Arguments

- 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).- data
an optional data frame containing the variables in the model. By default the variables are taken from the environment of the

`formula`

.- subset
an optional vector specifying a subset of observations to be used in fitting the model.

- na.action
a function that indicates what should happen when the data contain

`NA`

s. The default is set by the`na.action`

option.- weights
an optional vector of weights to be used in the fitting process.

- offset
an optional offset that can be used to specify an a priori known component to be included during fitting.

- contrasts
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`

.

##### Details

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

##### Value

`ivreg`

returns an object of class `"ivreg"`

, with the following components:

parameter estimates.

a vector of residuals.

a vector of predicted means.

either the vector of weights used (if any) or `NULL`

(if none).

either the offset used (if any) or `NULL`

(if none).

number of observations.

number of observations with non-zero weights.

the numeric rank of the fitted linear model.

residual degrees of freedom for fitted model.

unscaled covariance matrix for the coefficients.

residual standard error.

the original function call.

the model formula.

a list with elements `"regressors"`

and `"instruments"`

containing the terms objects for the respective components.

levels of the categorical regressors.

the contrasts used for categorical regressors.

the full model frame (if `model = TRUE`

).

the response vector (if `y = TRUE`

).

a list with elements `"regressors"`

, `"instruments"`

, `"projected"`

,
containing the model matrices from the respective components
(if `x = TRUE`

). `"projected"`

is the matrix of regressors projected
on the image of the instruments.

##### References

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

##### See Also

##### Examples

```
# NOT RUN {
## 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-6, License: GPL-2 | GPL-3*