gmm (version 1.8)

estfun: Extracts the empirical moment function

Description

It extracts the matrix of empirical moments so that it can be used by the kernHAC function.

Usage

# S3 method for gmmFct
estfun(x, y = NULL, theta = NULL, ...)
# S3 method for gmm
estfun(x, ...)
# S3 method for gel
estfun(x, ...)
# S3 method for tsls
estfun(x, ...)
# S3 method for tsls
model.matrix(object, ...)

Value

A \(n \times q\) matrix (see details).

Arguments

x

A function of the form \(g(\theta,y)\) or a \(n \times q\) matrix with typical element \(g_i(\theta,y_t)\) for \(i=1,...q\) and \(t=1,...,n\) or an object of class gmm. See gmm for more details. For tsls, it is an object of class tsls.

object

An object of class tsls.

y

The matrix or vector of data from which the function \(g(\theta,y)\) is computed if g is a function.

theta

Vector of parameters if g is a function.

...

Other arguments when estfun is applied to another class object

Details

For estfun.gmmFct, it returns a \(n \times q\) matrix with typical element \(g_i(\theta,y_t)\) for \(i=1,...q\) and \(t=1,...,n\). It is only used by gmm to obtain the estimates.

For estfun.gmm, it returns the matrix of first order conditions of \(\min_\theta \bar{g}'W\bar{g}/2\), which is a \(n \times k\) matrix with the \(t^{th}\) row being \(g(\theta, y_t)W G\), where \(G\) is \(d\bar{g}/d\theta\). It allows to compute the sandwich covariance matrix using kernHAC or vcovHAC when \(W\) is not the optimal matrix.

The method if not yet available for gel objects.

For tsls, model.matrix and estfun are used by vcov() to compute different covariance matrices using the sandwich package. See vcov.tsls. model.matrix returns the fitted values frin the first stage regression and esfun the residuals.

References

Zeileis A (2006), Object-oriented Computation of Sandwich Estimators. Journal of Statistical Software, 16(9), 1--16. URL tools:::Rd_expr_doi("10.18637/jss.v016.i09").

Examples

Run this code

n = 500
phi<-c(.2,.7)
thet <- 0
sd <- .2
x <- matrix(arima.sim(n=n,list(order=c(2,0,1),ar=phi,ma=thet,sd=sd)),ncol=1)
y <- x[7:n]
ym1 <- x[6:(n-1)]
ym2 <- x[5:(n-2)]
H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)])
g <- y ~ ym1 + ym2
x <- H
res <- gmm(g, x,weightsMatrix = diag(5))

gt <- res$gt
G <- res$G

foc <- gt
foc2 <- estfun(res)

foc[1:5,]
foc2[1:5,]

Run the code above in your browser using DataLab