Florent Bresson <[EMAIL PROTECTED]> writes: > I have to estimate the following model for several > group of observations : > > y(1-y) = p[1]*(x^2-y) + p[2]*y*(x-1) + p[3]*(x-y) > > with constraints : > p[1]+p[3] >= 1 > p[1]+p[2]+p[3]+1 >= 0 > p[3] >= 0 > > I use the following code : > func <- sum((y(1-y) - p[1]*(x^2-y) + p[2]*y*(x-1) + > p[3]*(x-y))^2) > estim <- optim( c(1,0,0),func, method="L-BFGS-B" , > lower=c(1-p[3], -p[1]-p[3]-1, 0) ) > > and for some group of observations, I observe that the > estimated parameters don't respect the constraints, > espacially the first. Where's the problem please ?
If you think the boundaries in lower=c(....) are recomputed as the iteration progresses, you're wrong. L-BGFS-B does box constraints only. Instead parametrize using q1=p1+p3 q2=p1+p2+p3 q3=p3 which is easily inverted to get the p's from the q's. Then optimize as a function of q1..q3, substituting the inversion in the expression for func (which btw needs to be a _function_), using the relevant box constraints. -- O__ ---- Peter Dalgaard Ă˜ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907 ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html