John-Paul Taylor
2009-Apr-05 12:27 UTC
[R] Quick Question - MLE for Geometric Brownian Motion Process with Jumps
Hi All, I am relatively new to R and having a great experience with it but have come up with a little road block. I am tying to run a maxlik regression and keep getting the error, NA in the initial gradient My Code is below: gbmploglik<-function(param){ mu<-param[1] sigma<-param[2] lamda<-param[3] nu<-param[4] gama<-param[5] logLikVal<- - n*lamda - .5*n*log(2*pi) + sum(log(sum(for(j in 1:10)(cat((lamda^j/factorial(j))*(1/((sigma^2+j*gama^2)^.5)*exp( - (combinedlrph1-mu-j*nu)^2/2*(sigma^2+j*gama^2)))))))) logLikVal } rescbj<- maxLik(gbmploglik, grad = NULL, hess = NULL, start=c(1,1,1,1,1), method = "Newton-Raphson") I was wondering if there is something that I have to do with the grad= and maybe put something other then NULL. The other issue is that there might be something wrong with the loglikelihood function, because of the loop that I put in it. If you have any suggestion or see something incorrect that I am doing please let me know. Thanks JP
Dieter Menne
2009-Apr-05 14:48 UTC
[R] Quick Question - MLE for Geometric Brownian Motion Process with Jumps
John-Paul Taylor <johnpaul.taylor <at> ryerson.ca> writes:> > > I am tying to run a maxlik regression and keep getting the error, > NA in the initial gradient > > My Code is below: > gbmploglik<-function(param){ > mu<-param[1] > sigma<-param[2] > lamda<-param[3] > nu<-param[4] > gama<-param[5] > logLikVal<- - n*lamda - .5*n*log(2*pi) + sum(log(sum(for(j in > 1:10)(cat((lamda^j/factorial(j))*(1/((sigma^2+j*gama^2)^.5)*exp( -(combinedlrph1-mu-j*nu)^2/2*(sigma^2+j*gama^2))))))))> logLikVal > } > rescbj<- maxLik(gbmploglik, grad = NULL, hess = NULL, start=c(1,1,1,1,1),method = "Newton-Raphson")> > I was wondering if there is something that I have to do with the grad= andmaybe put something other then NULL.> The other issue is that there might be something wrong with the loglikelihoodfunction, because of the> loop that I put in it.I have not used that function, but the error message is rather clear in telling you that your start values are not good. Try to plot the function and the gradient at that point. Sometime moving by a very small amount helps. Dieter