我尝试使用 R 中的 nlm 函数来最小化 -2likelihood。我的似然函数的一个组成部分是使用 adaptItegrate 计算的双积分。有了一些预先指定的起始值,我很快就得到了似然值(不到 1 分钟)。但是,当我使用 nlm 函数进行优化时,第一次迭代花费了相当长的时间(几乎 1 小时),最终我收到有关“内存重新分配”的错误消息。任何人都知道为什么会发生这种情况?我该如何解决这个问题。这是我的双重积分函数:
doubleint= function(y){
h<- function(x){
sig1*sig2*exp(-sig1*(y-x[1]))*exp(-sig2*(y-x[2]))*
laplace(alpha1/beta1*(exp(beta1*y)-exp(beta1*x[1]))+alpha2/beta2*(exp(beta2*y)-exp(beta2*x[2])))
}
sol=adaptIntegrate(h,lowerLimit=c(0,0),upperLimit=c(y,y),fDim = 1,doChecking=FALSE,tol=1e-5)$integral
return(sol)
}