Dear Rohit On 3 May 2011 22:53, Rohit Pandey <rohitpandey...@gmail.com> wrote: > Hello R community, > > I have been using R's inbuilt maximum likelihood functions, for the > different methods (NR, BFGS, etc). > > I have figured out how to use all of them except the maxBHHH function. This > one is different from the others as it requires an observation level > gradient. > > I am using the following syntax: > > maxBHHH(logLik,grad=nuGradient,finalHessian="BHHH",start=prm,iterlim=2) > > where logLik is the likelihood function and returns a vector of observation > level likelihoods and nuGradient is a function that returns a matrix with > each row corresponding to a single observation and the columns corresponding > to the gradient values for each parameter (as is mentioned in the online > help). > > however, this gives me the following error: > > *Error in checkBhhhGrad(g = gr, theta = theta, analytic = (!is.null(attr(f, > : > the matrix returned by the gradient function (argument 'grad') must have > at least as many rows as the number of parameters (10), where each row must > correspond to the gradients of the log-likelihood function of an individual > (independent) observation: > currently, there are (is) 10 parameter(s) but the gradient matrix has only > 2 row(s) > * > It seems it is expecting as many rows as there are parameters. So, I changed > my likelihood function so that it would return the transpose of the earlier > matrix (hence returning a matrix with rows equaling parameters and columns, > observations). > > However, when I run the function again, I still get an error: > *Error in gr[, fixed] <- NA : (subscript) logical subscript too long* > > I have verified that my gradient function, when summed across observations > gives the same results as the in built numerical gradient (to the 11th > decimal place - after that, they differ since R's function is numerical). > > I am trying to run a very large estimation (1000's of observations and 821 > parameters) and all of the other methods are taking way too much time > (days). This method is our last hope and so, any help will be greatly > appreciated.
Please make yourself familiar with the BHHH algorithm and read the documentation of maxBHHH: it says about argument "grad": "[...] If the BHHH method is used, ‘grad’ must return a matrix, where rows correspond to the gradient vectors of individual observations and the columns to the individual parameters.[...]" More information of the maxLik package is available at: http://dx.doi.org/10.1007/s00180-010-0217-1 Best regards, Arne -- Arne Henningsen http://www.arne-henningsen.name ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.