积分和数值优化(nlminb)R

积分和数值优化(nlminb)R,r,optimization,numerical-methods,R,Optimization,Numerical Methods,我有一个优化问题,涉及一个包含未知变量的积分的数值估计 数值估计一个积分足够简单,只需使用R中的积分函数。我试图估计一个非常不愉快的积分,它需要优化,因为它包含一个未知变量和一个约束。我正在使用nlminb函数,但结果非常不正确。其思想是计算小于或等于1-l的积分,其中l介于0和1之间 代码如下: integrand <- function(x, p) {dnorm(x,0,1)*(1-dnorm((qnorm(p) -sqrt(0.

我有一个优化问题,涉及一个包含未知变量的积分的数值估计

数值估计一个积分足够简单,只需使用R中的积分函数。我试图估计一个非常不愉快的积分,它需要优化,因为它包含一个未知变量和一个约束。我正在使用nlminb函数,但结果非常不正确。其思想是计算小于或等于1-l的积分,其中l介于0和1之间

代码如下:

integrand <- function(x, p) {dnorm(x,0,1)*(1-dnorm((qnorm(p)
                            -sqrt(0.12)*x)/(sqrt(1-0.12)), 0, 1))^800}
objective <- function(p){

  PoD <- integrate(integrand, lower = -Inf, upper = Inf, p = p)$value  

  PoD - 0.5
}

test <- nlminb(0.015, objective = objective, lower = 0, upper = 1)$par*100  

被积函数当然,因为你的目标函数不依赖于
p
。做:

integrand <- function(x, p) {dnorm(x,0,1)*(1-dnorm((qnorm(p)
                           -sqrt(0.12)*x)/(sqrt(1-0.12)), 0, 1))^800}

objective <- function(p){

  PoD <- integrate(integrand, lower = -Inf, upper = Inf, p = p)$value  

  PoD - 0.5
}

integrand问题仍然存在,nmlinb中的优化仍然会导致起始值乘以100。@Mikkelborchsenius您可能误解了我的代码。我发现
0.8518969
(*100)。是否可以显示nmlinb功能?因为我仍然有同样的问题。@Mikkelborchsenius
nlminb(0.015,objective=objective,lower=0,upper=1)$par
。您应该在重新启动R后尝试。非常感谢您的时间,现在它是正确的!这个案子已经结案了。