2013-01-25 78 views
1

R,optim命令使用Nelder-Mead方法來優化函數。文章指出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是什麼意思?

+9

哪篇文章?請引用你的來源。 –

回答

9

@ 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對於單變量分佈並不理想,但是爲了簡單起見,我在此使用它,因爲它說明了這一點。

+1

這就是我懷疑的@Ari,但不想在特定情況下引用的情況下參與。 +1,特別是對於可視化。 –