我正在尝试优化R中的一个函数,该函数对输入参数有约束,但对函数的结果也有约束。我正在使用constrOptim。
我要优化的功能如下:
fn.opt <- function(x){
fnLambda=x[[1]]
fnSigma=x[[2]]
fn.norm = fnLambda*dnorm(pz$x, mean=mxMu, sd=fnSigma)
fn.res = sum((density$y - fn.norm)^2)
return(fn.res)
}
在这里,我有一些数据的核密度估计density
,并且我有一个正常的近似值fn.norm
。我想最小化残差平方和,使用constrOptim可以成功做到这一点。
theta = c(mxLambda,mxSigma)
ui = rbind(c(1,0),c(-1,0),c(0,1))
ci = c(0,-1,0)
pz.opt = constrOptim(theta=theta,f=fn.opt,ui=ui,ci=ci,grad=NULL)
pz.opt
约束:0 <= mxLambda <= 1&0 不过,我还希望普通密度近似值 有什么方法可以添加具有 谢谢。fn.norm
严格小于数据density$y
的密度。fn.norm < density$y
的约束,同时仍然优化fn.res
?