I am currently trying to find MLE of a function with four parameters.  My codes run well but i don't get the results. I get the following message:

BHHH maximisation
Number of iterations: 0
Return code: 100
Initial value out of range.

I don't know this is so because of the way i have written my loglikelihood or what.


The loglikelihood

LogLik<-function(param){
beta_1<-param[1]
beta_2<-param[2]
beta_3<-param[3]
beta_4<-param[4]

lambda.plus<-beta_1*Iplusless1 + beta_2*Iminusless1
lambda.minus<-beta_3*Iplusless1 + beta_4*Iminusless1

sum(Iplus_new*log(lambda.plus))-sum(log(lambda.plus)*x_new) +
sum(Iminus_new*log(lambda.minus))-sum(log(lambda.minus)*x_new)
}

The gradients

gradient<-function(param){
beta_1<-param[1]
beta_2<-param[2]
beta_3<-param[3]
beta_4<-param[4]

lambda.plus<-beta_1*Iplusless1 + beta_2*Iminusless1
lambda.minus<-beta_3*Iplusless1 + beta_4*Iminusless1

sum(Iplus_new*Iplusless1)-sum((lambda.plus)*Iplusless1*x_new)
sum(Iplus_new*Iminusless1)-sum((lambda.plus)*Iminusless1*x_new)
sum(Iminus_new*Iplusless1)-sum((lambda.minus)*Iminusless1*x_new)
sum(Iminus_new*Iminusless1)-sum((lambda.minus)*Iminusless1*x_new)
}
In this codes the variables are  Iplus_new, lambda.plus, lambda_minus, Iminus_new , Iminusless1 and Iplusless1. The variables  x_new  is the duration between two bid-ask occurring at times t_(i-1) and t_i. i.e. x_new=t_i -t_i-1. There are several observations for x_new.  The Iplus_new and Iminus_new are the indicator  variable showing whether the price was increasing or decreasing at duration x_new. Both  Iminusless1 and Iplusless1 are lag variable of Iminus_new and Iplus_new respectively.


aaa<- maxBHHH(LogLik, gradient, start=1)
summary(aaa)

	[[alternative HTML version deleted]]

