| ivreg.fit {AER} | R Documentation |
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.fit(x, y, z, weights, offset, ...)
x |
regressor matrix. |
y |
vector with dependet 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. |
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.
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. |
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. |
hatvalues |
regression hat values. |
## 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)
z <- model.matrix(fm, component = "instruments")
ivreg.fit(x, y, z)$coefficients