getLamb: Solving for the Lagrange multipliers of Generalized Empirical...

View source: R/gel.R

getLambR Documentation

Solving for the Lagrange multipliers of Generalized Empirical Likelihood (GEL)

Description

It computes the vector of Lagrange multipliers, which maximizes the GEL objective function, using an iterative Newton method.

Usage

getLamb(gt, l0, type = c("EL","ET","CUE", "ETEL", "HD","ETHD","RCUE"),
        tol_lam = 1e-7, maxiterlam = 100, 
	tol_obj = 1e-7, k = 1, method = c("nlminb", "optim", "iter", "Wu"),
        control = list())

Arguments

gt

A n \times q matrix with typical element g_i(\theta,x_t)

l0

Vector of starting values for lambda

type

"EL" for empirical likelihood, "ET" for exponential tilting, "CUE" for continuous updated estimator, and "HD" for Hellinger Distance. See details for "ETEL" and "ETHD". "RCUE" is a restricted version of "CUE" in which the probabilities are bounded below by zero. In that case, an analytical Kuhn-Tucker method is used to find the solution.

tol_lam

Tolerance for \lambda between two iterations. The algorithm stops when \|\lambda_i -\lambda_{i-1}\| reaches tol_lam

maxiterlam

The algorithm stops if there is no convergence after "maxiterlam" iterations.

tol_obj

Tolerance for the gradiant of the objective function. The algorithm returns a non-convergence message if \max(|gradiant|) does not reach tol_obj. It helps the gel algorithm to select the right space to look for \theta

k

It represents the ratio k1/k2, where k1=\int_{-\infty}^{\infty} k(s)ds and k2=\int_{-\infty}^{\infty} k(s)^2 ds. See Smith(2004).

method

The iterative procedure uses a Newton method for solving the FOC. It i however recommended to use optim or nlminb. If type is set to "EL" and method to "optim", constrOptim is called to prevent log(1-gt'\lambda) from producing NA. The gradient and hessian is provided to nlminb which speed up the convergence. The latter is therefore the default value. "Wu" is for "EL" only. It uses the algorithm of Wu (2005). The value of method is ignored for "CUE" because in that case, the analytical solution exists.

control

Controls to send to optim, nlminb or constrOptim

Details

It solves the problem \max_{\lambda} \frac{1}{n}\sum_{t=1}^n \rho(gt'\lambda). For the type "ETEL", it is only used by gel. In that case \lambda is obtained by maximizing \frac{1}{n}\sum_{t=1}^n \rho(gt'\lambda), using \rho(v)=-\exp{v} (so ET) and \theta by minimizing the same equation but with \rho(v)-\log{(1-v)}. To avoid NA's, constrOptim is used with the restriction \lambda'g_t < 1. The type "ETHD" is experimental and proposed by Antoine-Dovonon (2015). The paper is not yet available.

Value

lambda: A q\times 1 vector of Lagrange multipliers which solve the system of equations given above. conv: Details on the type of convergence.

References

Newey, W.K. and Smith, R.J. (2004), Higher Order Properties of GMM and Generalized Empirical Likelihood Estimators. Econometrica, 72, 219-255.

Smith, R.J. (2004), GEL Criteria for Moment Condition Models. Working paper, CEMMAP.

Wu, C. (2005), Algorithms and R codes for the pseudo empirical likelihood method in survey sampling. Survey Methodology, 31(2), page 239.

Examples

g <- function(tet,x)
	{
	n <- nrow(x)
	u <- (x[7:n] - tet[1] - tet[2]*x[6:(n-1)] - tet[3]*x[5:(n-2)])
	f <- cbind(u, u*x[4:(n-3)], u*x[3:(n-4)], u*x[2:(n-5)], u*x[1:(n-6)])
	return(f)
	}
n = 500
phi<-c(.2, .7)
thet <- 0.2
sd <- .2
x <- matrix(arima.sim(n = n, list(order = c(2, 0, 1), ar = phi, ma = thet, sd = sd)), ncol = 1)
gt <- g(c(0,phi),x)
getLamb(gt, type = "EL",method="optim")

gmm documentation built on June 7, 2023, 6:05 p.m.

Related to getLamb in gmm...