我在涉及包含未知变量的积分的数值估计的优化问题上遇到问题。
数值估计积分很简单,只需在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}
并且是未知的变量p。
要最小化的目标函数如下:
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
经过编辑以反映目标函数和积分中的错误。同样的问题仍然存在。
我认为我的错误不是指定要最小化的变量。优化只给出了以nlminb乘以100的起始值。
[论文的作者使用伪变量,并表明l = 0,5应该给出p = 0,15%。
谢谢您的时间。
当然,因为您的目标函数不取决于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
}