-1
我正在研究一個非常簡單的優化(線性)問題,這在Excel中非常容易,但是當我用R的optim()或優化()。其功能是獲得風險厭惡係數。 wc是受訪者的答案,儘管我自己給予了價值。R中的Optim()給了我不同的值與Excel解算器插件
p <- 0.3
w1 <- 2.0
w2 <- 0.0
mean <- p*w1+(1-p)*w2
variance <- p*w1^2+(1-p)*w2^2-mean^2
wc <- 0.4
f<- function(x){(abs(mean-wc+0.5*x*variance))}
initial_x <- c(0.1)
x_optimal <- optim(initial_x, f, method="CG")
x_min <- x_optimal$par
x_min
[1] -0.4761905
目標函數只是一個線性方程,其中一個變量和所有其他變量均已確定。 當我用Excel解算器計算它的最優值是0.4761905(是的,只有沒有減號的數字完全相同)。
我也嘗試過其他方法,比如'Brent','SANN',但他們給了我完全不同的值。 我聽說optimize()函數是用於線性優化的,所以我也試了一下,但也給了我錯誤的值。你能告訴我原因嗎?
謝謝!
嗨,歡迎來到堆棧溢出。下次您發佈帖子時,請嘗試發佈[可重現的示例](http://www.stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。我們沒有任何Excel代碼,所以我不能告訴你爲什麼你的答案是不同的標誌。您的R代碼返回正確的解決方案。 Excel中答案相反的原因可能是絕對值。此外,您不應該使用基於通用梯度的優化例程來回答線性問題。只需'解決(.5 *方差,mean-wc)'返回值'0.4761905'。 – shayaa