[R] Optimization function producing negative parameter values

Shah Alam dr@@|@m@o|@ng| @end|ng |rom gm@||@com
Sun Mar 21 18:20:21 CET 2021


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]]



More information about the R-help mailing list