Ajout de fonctions d'optimisation et covariance

This commit is contained in:
François Pelletier 2014-02-27 23:05:30 -05:00
parent 0677c1078e
commit 6ee762daea
8 changed files with 112 additions and 9 deletions

View file

@ -12,7 +12,7 @@
#' @return A square covariance matrix
#'
#' @author François Pelletier
gmmGAL.mu.vcov <- function(conditions.vector,n,...)
covariance.GMM <- function(conditions.vector,n,...)
{
t(conditions.vector(...)) %*% conditions.vector(...) / n
}

View file

@ -0,0 +1,19 @@
# Covariance matrix of the parameters using delta method
#
# Author: Francois Pelletier
#
# LGPL-3.0
###############################################################################
#' Covariance matrix of the parameters using delta method
#' @param covariance Covariance matrix of the moment conditions
#' @param gradient Gradient matrix of the moment conditions
#' @param size Sample size
#' @return The covariance matrix of the parameters
#'
#' @author François Pelletier
delta.method.covariance.GMM <- function(covariance,gradient,size)
{
ginv(gradient %*% ginv(covariance) %*% t(gradient))/size
}

View file

@ -6,13 +6,19 @@
###############################################################################
#' Objective function for the GMM method
#' @param param Vector of parameters to optimize
#' @param conditions.vector Vector of moment conditions
#' @param ... Parameters of the vector of moment conditions
#' @param W Weighting matrix
#' @param R Linear constraint matrix of coefficients
#' @param r Linear constraint constants
#' @return A scalar value
#'
#' @author François Pelletier
obj.gmmGAL.mu <- function(conditions.vector,...,W=diag(length(conditions.vector)))
objective.GMM <- function(param.lagrangian,conditions.vector,num.param,...,
W=diag(length(conditions.vector)),R=0,r=0)
{
colMeans(conditions.vector(...)) %*% ginv(W) %*% colMeans(conditions.vector(...))
param <- param.lagrangian[1:num.param]
lagrangian <- param.lagrangian[num.param+1:length(param.lagrangian)]
colMeans(conditions.vector(param,...)) %*% ginv(W) %*% colMeans(conditions.vector(param,...))+ abs(t(R %*% param - r) %*% lagrangian)
}

15
R/optim.GMM.R Normal file
View file

@ -0,0 +1,15 @@
#' Optimization with constraints for GMM methos
#'
#' @param start Starting values for the parameters and lagrangian
#' @param conditions.vector Vector of moment conditions
#' @param number of parameters of the distribution
#' @param ... Parameters of the vector of moment conditions
#' @param W Weighting matrix
#' @param R Linear constraint matrix of coefficients
#' @param r Linear constraint constants
#' @return une liste contenant le résultat de l'optimisation
#' @author François Pelletier
optim.GMM <- function(start,conditions.vector,num.param,...,W,R,r)
{
optim(c(start,objective.GMM,conditions.vector,num.param,...,W,R,r))
}