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 |
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 |
offset |
either the offset used (if any) or |
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
Examples
## data
data("CigarettesSW")
CigarettesSW <- transform(CigarettesSW,
rprice = price/cpi,
rincome = income/population/cpi,
tdiff = (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