1

Roptim命令使用 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

4

1 回答 1

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"  )
}

看看起始值有多重要?

阴谋

NB 我意识到 Nelder-Mead 对于单变量分布并不理想,但为了简单起见,我在这里使用它,因为它说明了这一点。

于 2013-01-25T13:27:54.150 回答