Dear all, I'm trying to estimate some parameters with the optim() function but I need to restrict one parameter and I have not found how to do it. Could you help me please? my program is basically fn<-function(s) initial<-function(r) { cst<-r[1] cst1<-r[2] beta<-r[3] rho<-r[4] p1<-r[5] return(-sum()) } parms<-c() m0<-optim() I need to specify 0<=p1<=1. Thank you very much Luis SAGAON
Luis SAGAON TEYSSIER <luis.sagaon_teyssier <at> etumel.univmed.fr> writes:> > Dear all, > > I'm trying to estimate some parameters with the optim() function but I > need to restrict one parameter and I have not found how to do it. > Could you help me please?Thought someone else would answer by now. use the arguments method="L-BFGS-B", lower=c(-Inf,-Inf,-Inf,-Inf,0), upper=c(Inf,Inf,Inf,Inf,1) you may need to tweak these slightly (e.g. set the bounds slightly within the desired [0,1] range or set the lower/upper bounds for the unbounded parameters to large negative/positive numbers) if you get errors about NaNs etc.
> Dear all, > > I'm trying to estimate some parameters with the optim() function but I > need to restrict one parameter and I have not found how to do it. Could > you help me please? > > my program is basically > > fn<-function(s) > > initial<-function(r) > { > cst<-r[1] > cst1<-r[2] > beta<-r[3] > rho<-r[4] > p1<-r[5] > > return(-sum()) > } > > parms<-c() > > m0<-optim() > > > I need to specify 0<=p1<=1. > > Thank you very much > > Luis SAGAON