我是在对200条曲线进行平均曲线的拟合,用optim进行优化,总是报出optim() non-finite finite-difference value 。一步步看完优化的函数,发现,优化的函数中用到了dmvnorm,dmvnorm出现了-Inf导致的。
我的dmonorm
Lfy<-function(par,areadf,weightdf){
ind_N<-dim(weightdf)[2]; Lfy_ls<-c()
for(k in 1:ind_N){
area<-areadf[,k];weight<-weightdf[,k]
mu<-NP_get_mu1(par,weight); #得到5个数字组成的向量
SAD<-SAD1(par,weight);#得到5x5的对称矩阵
library(mvtnorm);
Lfy_ind<-dmvnorm(area,mu,SAD,log=TRUE)
Lfy_ls<-c( Lfy_ls,Lfy_ind)#由ind_N个数据组成的向量,由于会出现个别的-Inf导致return也是Inf
}
Lfy<--sum(Lfy_ls)
return(Lfy)
}
我想知道,dmvnorm为什么会算出-Inf?
非常感谢各位的解惑!


雷达卡


京公网安备 11010802022788号







