Learn R Programming

momentfit (version 0.5)

evalDMoment-methods: ~~ Methods for Function evalDMoment in Package momentfit ~~

Description

It computes the matrix of derivatives of the sample moments with respect to the coefficients.

Usage

# S4 method for functionModel
evalDMoment(object, theta, impProb=NULL,
lambda=NULL)

# S4 method for rfunctionModel evalDMoment(object, theta, impProb=NULL, lambda=NULL)

# S4 method for rnonlinearModel evalDMoment(object, theta, impProb=NULL, lambda=NULL)

# S4 method for formulaModel evalDMoment(object, theta, impProb=NULL, lambda=NULL)

# S4 method for rformulaModel evalDMoment(object, theta, impProb=NULL, lambda=NULL)

# S4 method for regModel evalDMoment(object, theta, impProb=NULL, lambda=NULL)

# S4 method for sysModel evalDMoment(object, theta)

# S4 method for rslinearModel evalDMoment(object, theta)

# S4 method for rsnonlinearModel evalDMoment(object, theta, impProb=NULL)

Arguments

object

An model object

theta

A numerical vector of coefficients

impProb

If a vector of implied probablities is provided, the sample means are computed using them. If not provided, the means are computed using the uniform weight

lambda

A vector of Lagrange multipliers associated with the moment conditions. Its length must therefore match the number of conditions. See details below.

Methods

signature(object = "functionModel")

signature(object = "rfunctionModel")

The theta vector must match the number of coefficients in the restricted model.

signature(object = "formulaModel")

signature(object = "rformulaModel")

The theta vector must match the number of coefficients in the restricted model.

signature(object = "regModel")

signature(object = "sysModel")

signature(object = "rslinearModel")

Details

Without the argument lambda, the method returns a \(q \times k\) matrix, where \(k\) is the number of coefficients, and \(q\) is the number of moment conditions. That matrix is the derivative of the sample mean of the moments with respect to the coefficient.

If lambda is provided, the method returns an \(n \times k\) matrix, where \(n\) is the sample size. The ith row is \(G_i'\lambda\), where $G_i$ is the derivative of the moment function evaluated at the ith observation. For now, this option is used to compute robust-to-misspecified standard errors of GEL estimators.

Examples

Run this code
data(simData)
theta <- c(1,1)
model1 <- momentModel(y~x1, ~z1+z2, data=simData)
G <- evalDMoment(model1, theta)

## A nonlinearModel
g <- y~beta0+x1^beta1
h <- ~z1+z2
model2 <- momentModel(g, h, c(beta0=1, beta1=2), data=simData)
G <- evalDMoment(model2, c(beta0=1, beta1=2))

## A functionModel
fct <- 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)
    }
dfct <- 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)
        }
X <- rnorm(200)
model3 <- momentModel(fct, X, theta0=c(beta0=1, beta1=2), grad=dfct)
G <- evalDMoment(model3, c(beta0=1, beta1=2))

Run the code above in your browser using DataLab