Correction iterative GMM

This commit is contained in:
François Pelletier 2014-03-08 00:41:05 -05:00
parent 445e334b28
commit 3aecd56cc4
8 changed files with 17 additions and 26 deletions

View file

@ -10,23 +10,20 @@
#' @param start Starting values for the parameters and lagrangian
#' @param conditions.vector Vector of moment conditions
#' @param data Individual data sample
#' @param ... Functions of the vector of moment conditions
#' @param W Weighting matrix
#' @param R Linear constraint matrix of coefficients
#' @param r Linear constraint constants
#' @param ... Functions of the vector of moment conditions
#' @param max.iter Maximum number of iterations
#' @param epsilon Minimum precision level
#' @return A list containing the optimized vector of parameter and corresponding covariance matrix
#' @export iterative.GMM
#' @author François Pelletier
iterative.GMM <- function(start,conditions.vector,data,...,
W=diag(length(conditions.vector)),R=0,r=0,lagrangian.start=rep(0,length(conditions.vector)),max.iter=50,epsilon=1E-6)
iterative.GMM <- function(start,conditions.vector,data,W,...,max.iter=50,epsilon=1E-6)
{
theta1 <- optim.GMM(start,conditions.vector,data,...,W,R,r,lagrangian.start)
theta1 <- optim.GMM(start,conditions.vector,data,W,...)
i <- 1
repeat
{
theta2 <- optim.GMM(theta1,conditions.vector,data,...,W,R,r,lagrangian.start)
theta2 <- optim.GMM(theta1,conditions.vector,data,W,...)
S <- covariance.GMM(conditions.vector,param,data,...)
if(sqrt(sum((theta1-theta2)^2))<epsilon)
return(list(par=theta2,cov=S))

View file

@ -8,13 +8,13 @@
#' GMM vector for mean and variance moment conditions
#' @param param Estimated parameters
#' @param X Data Sample
#' @param data Data Sample
#' @param meanf Mean function
#' @param variancef Variance function
#' @return A two column matrix of differences
#' @export meanvariance.gmm.vector
#' @author François Pelletier
meanvariance.gmm.vector <- function(param,X,meanf,variancef)
meanvariance.gmm.vector <- function(param,data,meanf,variancef)
{
cbind(X-meanf(param),(X-meanf(param))^2 - variancef(param))
cbind(data-meanf(param),(data-meanf(param))^2 - variancef(param))
}

View file

@ -9,8 +9,8 @@
#' @param param Vector of parameters
#' @param conditions.vector Vector of moment conditions
#' @param data Individual data sample
#' @param ... Functions of the vector of moment conditions
#' @param W Weighting matrix
#' @param ... Functions of the vector of moment conditions
#' @return A scalar value
#' @export objective.GMM
#' @author François Pelletier

View file

@ -10,8 +10,8 @@
#' @param start Starting values for the parameters
#' @param conditions.vector Vector of moment conditions
#' @param data Individual data sample
#' @param ... Functions of the vector of moment conditions
#' @param W Weighting matrix
#' @param ... Functions of the vector of moment conditions
#' @return a list with optimization results
#' @export optim.GMM
#' @author François Pelletier