tsls {gmm} | R Documentation |
Two stage least squares estimation
Description
Function to estimate a linear model by the two stage least squares method.
Usage
tsls(g,x,data)
Arguments
g |
A formula describing the linear regression model (see details below). |
x |
The matrix of instruments (see details below). |
data |
A data.frame or a matrix with column names (Optionnal). |
Details
The function just calls gmm
with the option vcov="iid". It just simplifies the the implementation of 2SLS. The users don't have to worry about all the options offered in gmm
. The model is
In the first step, lm
is used to regress on the set of instruments
. The second step also uses
lm
to regress on the fitted values of the first step.
Value
'tsls' returns an object of 'class' '"tsls"' which inherits from class '"gmm"'.
The functions 'summary' is used to obtain and print a summary of the results. It also compute the J-test of overidentying restriction
The object of class "gmm" is a list containing at least:
coefficients |
|
residuals |
the residuals, that is response minus fitted values if "g" is a formula. |
fitted.values |
the fitted mean values if "g" is a formula. |
vcov |
the covariance matrix of the coefficients |
objective |
the value of the objective function |
terms |
the |
call |
the matched call. |
y |
if requested, the response used (if "g" is a formula). |
x |
if requested, the model matrix used if "g" is a formula or the data if "g" is a function. |
model |
if requested (the default), the model frame used if "g" is a formula. |
algoInfo |
Information produced by either |
References
Hansen, L.P. (1982), Large Sample Properties of Generalized Method of Moments Estimators. Econometrica, 50, 1029-1054,
Examples
n <- 1000
e <- arima.sim(n,model=list(ma=.9))
C <- runif(n,0,5)
Y <- rep(0,n)
Y[1] = 1 + 2*C[1] + e[1]
for (i in 2:n){
Y[i] = 1 + 2*C[i] + 0.9*Y[i-1] + e[i]
}
Yt <- Y[5:n]
X <- cbind(C[5:n],Y[4:(n-1)])
Z <- cbind(C[5:n],Y[3:(n-2)],Y[2:(n-3)],Y[1:(n-4)])
res <- tsls(Yt~X,~Z)
res