积分和数值优化(nlminb)R
我有一个优化问题,涉及一个包含未知变量的积分的数值估计 数值估计一个积分足够简单,只需使用R中的积分函数。我试图估计一个非常不愉快的积分,它需要优化,因为它包含一个未知变量和一个约束。我正在使用nlminb函数,但结果非常不正确。其思想是计算小于或等于1-l的积分,其中l介于0和1之间 代码如下:积分和数值优化(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.
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功能?因为我仍然有同样的问题。@Mikkelborchseniusnlminb(0.015,objective=objective,lower=0,upper=1)$par
。您应该在重新启动R后尝试。非常感谢您的时间,现在它是正确的!这个案子已经结案了。