[R] Re MLE Issues

Thomas Lumley tlumley at u.washington.edu
Sat Apr 11 02:54:17 CEST 2009


On Fri, 10 Apr 2009, From Watchman wrote:

> Hi
>
> I have been having issue with a ML estimator for Jump diffusion process but
> know I am get little error I didn't notice before like I am try to create a
> vector
>> #GBMPJ MLE Combined Ph 1 LR
>> #
>> n<-length(combinedlrph1)
>> j<-c(1,2,3,4,5,6,7,8,9,10)
> Error in c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) :
>  unused argument(s) (3, 4, 5, 6, 7, 8, 9, 10)
>
>> 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((for(i in 1:n)(log(sum(for(j
> in 1:10)(((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")
>
> Error in c(1, 1, 1, 1, 1) : unused argument(s) (1, 1, 1)
>
> then below in the maxLik it is not seem to be taking my other starting value
> and I am not sure why? If anyone can help me that would be great.

I don't have a full solution, but I will point out that for() loops don't do what I think you think they do:
      > sum(for(i in 1:10) i)
      [1] 10

Unless n is very large I suspect you can rewrite logLikVal to use outer() and then sum().

Something else must be badly wrong too, since you shouldn't be able to get that error message out of base::c().  Try find("c") to see if it has been masked by something else.

     -thomas

Thomas Lumley			Assoc. Professor, Biostatistics
tlumley at u.washington.edu	University of Washington, Seattle




More information about the R-help mailing list