功能租期,提高一個函數估計只有mu
參數時爲負二項分佈的似然函數。這不應該是一個問題,因爲函數顯然只有一個最大值。但是,我無法達到理想的結果。
功能被optmized是:
EMV <- function(data, par) {
Mi <- par
Phi <- 2
N <- NROW(data)
Resultado <- log(Mi/(Mi + Phi))*sum(data) + N*Phi*log(Phi/(Mi + Phi))
return(Resultado)
}
數據是負二項式變量與參數2的載體和2
data <- rnegbin(10000, mu = 2, theta = 2)
當我繪製具有mu
作爲變量具有以下功能代碼:
x <- seq(0.1, 100, 0.02)
z <- EMV(data,0.1)
for (aux in x) {z <- rbind(z, EMV(data,aux))}
z <- z[2:NROW(z)]
plot(x,z)
我得到以下曲線:
和Z的最大值接近的參數值 - > 2
x[which.max(z)]
但優化不與BFGS
Error in optim(par = theta, fn = EMV, data = data, method = "BFGS") :
non-finite finite-difference value [1]
工作,不會以SANN爲例:
$par
[1] 5.19767e-05
$value
[1] -211981.8
$counts
function gradient
10000 NA
$convergence
[1] 0
$message
NULL
的問題是:
- 我在做什麼錯?
- 有沒有辦法告訴
optim
param應該大於0? - 有沒有辦法告訴
optim
我想最大化該功能? (恐怕optim
試圖最小化,並去一個很小的值,其中函數返回最小值)
謝謝。我使用了'optim(par = theta,fn = EMV,data = data,method =「Brent」,lower = 0,upper = 1E5)'',我得到1E5。看來,優化是最小化該區間的功能。 – Nizam
請將您的評論作爲回答,我很樂意接受它。非常感謝。 – Nizam
當然...慢慢來。我的問題已經解決了。 – Nizam