gmm (version 1.8)

bread: Bread for sandwiches

Description

Computes the bread of the sandwich covariance matrix

Usage

# S3 method for gmm
bread(x, ...)
# S3 method for gel
bread(x, ...)
# S3 method for tsls
bread(x, ...)

Value

A \(k \times k\) matrix (see details).

Arguments

x

A fitted model of class gmm or gel.

...

Other arguments when bread is applied to another class object

Details

When the weighting matrix is not the optimal one, the covariance matrix of the estimated coefficients is: \((G'WG)^{-1} G'W V W G(G'WG)^{-1}\), where \(G=d\bar{g}/d\theta\), \(W\) is the matrix of weights, and \(V\) is the covariance matrix of the moment function. Therefore, the bread is \((G'WG)^{-1}\), which is the second derivative of the objective function.

The method if not yet available for gel objects.

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
# See \code{\link{gmm}} for more details on this example.
# With the identity matrix 
# bread is the inverse of (G'G)

n <- 1000
x <- rnorm(n, mean = 4, sd = 2)
g <- function(tet, x)
        {
        m1 <- (tet[1] - x)
        m2 <- (tet[2]^2 - (x - tet[1])^2)
        m3 <- x^3 - tet[1]*(tet[1]^2 + 3*tet[2]^2)
        f <- cbind(m1, m2, m3)
        return(f)
        }
Dg <- function(tet, x)
        {
        jacobian <- matrix(c( 1, 2*(-tet[1]+mean(x)), -3*tet[1]^2-3*tet[2]^2,0, 2*tet[2],
				-6*tet[1]*tet[2]), nrow=3,ncol=2)
        return(jacobian)
        }

res <- gmm(g, x, c(0, 0), grad = Dg,weightsMatrix=diag(3))
G <- Dg(res$coef, x)
bread(res)
solve(crossprod(G))

Run the code above in your browser using DataLab