[R] maximizing a likelihood function containing an integral
Sam Wong
qxsr at yahoo.com
Sat Sep 9 01:34:58 CEST 2006
Hi, R Users;
I am trying to maximize a likelihood function which
contains an integral. The integral contains the
unknown parameter as well. I am trying to use the
following code to do the maximization:
ll<-function(b.vec){
b0<-b.vec[1]
b1<-b.vec[2]
b2<-b.vec[3]
p<-1/(1+exp(-b0-b1*z1-b2*x2))
lik1<-p^y*(1-p)^(1-y)*exp(-(z1^2+x2^2-2*rho*z1*x2)/(2*(1-rho^2)))
log.lik1<-sum(log(lik1[1:n1]))
log.lik2<-0
for(j in (n1+1):n){
integrand<-function(u,B0,B1,B2){
exp(-y[j]*(B0+B1*u+B2*x2[j])-(u-rho*x2[j])^2/2)/(1+exp(B0+B1*u+B2*x2[j]))
}
log.lik2<-log.lik2+log(integrate(integrand,lower=1,upper=Inf,B0=b0,B1=b1,B2=b2)$integral)
}
log.lik<-log.lik1+log.lik2
}
start<-c(0,0,0)
nlminb(start,ll)
The error message is:
Error in log(x) : Non-numeric argument to mathematical
function
Suggestions are welcome.
Thanks
Ming Ji
More information about the R-help
mailing list