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@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.

Reply via email to