R: Fitting Instrumental-Variable Regressions

ivreg.fit {AER} | R Documentation

## Fitting Instrumental-Variable Regressions

### Description

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.

### Usage

    ivreg.fit(x, y, z, weights, offset, ...)

### Arguments

`x` | regressor matrix.
`y` | vector with dependent variable.
`z` | instruments matrix.
`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.
`...` | further arguments passed to `lm.fit` or `link[stats]{lm.wfit}`, respectively.

### Details

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

`ivreg.fit` is a convenience interface to `lm.fit` (or `lm.wfit`) for first projecting `x` onto the image of `z` and the running a regression of `y` onto the projected `x`.

### Value

`ivreg.fit` returns an unclassed list with the following components:

`coefficients` | parameter estimates.
`residuals` | a vector of residuals.
`fitted.values` | a vector of predicted means.
`weights` | either the vector of weights used (if any) or `NULL` (if none).
`offset` | either the offset used (if any) or `NULL` (if none).
`estfun` | a matrix containing the empirical estimating functions.
`n` | number of observations.
`nobs` | number of observations with non-zero weights.
`rank` | the numeric rank of the fitted linear model.
`df.residual` | residual degrees of freedom for fitted model.
`cov.unscaled` | unscaled covariance matrix for the coefficients.
`sigma` | residual standard error.

### See Also

`ivreg`, `lm.fit`

### Examples

    ## data
    data("CigarettesSW")
    CigarettesSW$rprice <- with(CigarettesSW, price/cpi)
    CigarettesSW$rincome <- with(CigarettesSW, income/population/cpi)
    CigarettesSW$tdiff <- with(CigarettesSW, (taxs - tax)/cpi)

    ## high-level interface
    fm <- ivreg(log(packs) ~ log(rprice) + log(rincome) | log(rincome) + tdiff + I(tax/cpi),
      data = CigarettesSW, subset = year == "1995")

    ## low-level interface
    y <- fm$y
    x <- model.matrix(fm, component = "regressors")
    z <- model.matrix(fm, component = "instruments")
    ivreg.fit(x, y, z)$coefficients

[Package AER version 1.2-5 Index]