Optimization function producing negative parameter values
Can you put together your example as a single runnable scipt? If so, I'll try some other tools to see what is going on. There have been rumours of some glitches in the L-BFGS-B R implementation, but so far I've not been able to acquire any that I can reproduce. John Nash (maintainer of optimx package and some other optimization tools)
On 2021-03-21 1:20 p.m., Shah Alam wrote:
Dear all, I am using optim() to estimate unknown parameters by minimizing the residual sums of squares. I created a function with the model. The model is working fine. The optim function is producing negative parameter values, even I have introduced upper and lower bounds (given in code). Therefore, the model produces *NAs*. Following is my code. param <<- c(0.002,0.002, 0.14,0.012,0.01,0.02, 0.03, 0.001)# initial
parameter values opt <- optim(param, fn= f.opt, obsdata =obsdata_10000, method= "L-BFGS-B", lower = c(0.001, 0.001, 0.08,0.008, 0.009, 0.008, 0.009, 0.001),
upper = c(0.00375, 0.002, 0.2, 0.018, 0.08, 0.08, 0.08, 0.01),
control=list(maxit=10), hessian = T)
Error:
*"NAs producedError in if (rnd_1 < liferisk) { : missing value where
TRUE/FALSE needed "*
The model function which produces NA due to negative parameter values
liferisk <- rnorm(n = 1, mean =
(calib_para[which(names(calib_para)=="r_mu")]),sd =
(calib_para[which(names(calib_para)=="r_sd")]))
rnd_1 <- runif(1, 0, 1)
if (rnd_1 < liferisk) { ca_case <- 1} else {ca_case <- 0}
How to design/ modify optim() function, and upper-lower bounds to stop
producing negative values during parameter search?
Thanks
Best regards,
Shah
[[alternative HTML version deleted]]
______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.