Nelder-Mead优化方法

时间:2013-01-25 13:06:20

标签: r optimization

R中,optim命令使用Nelder-Mead方法优化函数。一篇文章说明

The parameters to be estimated are optimized over initial values. As a result,
different initial values will lead to different estimates.

the parameters to be estimated are optimized over initial values是什么意思?

1 个答案:

答案 0 :(得分:10)

@ GavinSimpson要求引用你的消息来源是有充分根据的。

那就是说,这是一个基本的优化概念。通常,您必须为参数选择起始值(或者例程必须为您猜测它们)。因为优化通常会找到局部最小值或最大值,如果你从一个不是全局最小值的局部最小值附近开始,你可能会找到本地最小值,而不是全局最小值。

这是一个例子。首先,创建并绘制一个6阶多项式(具有多个局部最小值)。然后从三个不同的点开始优化。

f <- function(x)  {
  1/30 * (x+3.5)*(x+2)*(x+1)*(x-1)*(x-3)*(x-4) + 2
}
vec <- seq(-4,4, .01)
plot( f(vec) ~ vec, type="l" )

for( startX in c(-3.5,-.5,3) ) {
  opt <- optim( list(x=startX), fn=f )
  points( x=opt$par, y=opt$value, pch="x", col="red"  )
}

了解起始值如何重要?

plot

N.B。我意识到Nelder-Mead并不适合单变量分布,但我在这里使用它是为了简单,因为它说明了这一点。