On Tue, 12 Oct 1999, Mark Leeds wrote:
> hi : I was just wondering if anyone knows of ( or has ) a version of MaxBFGS that
> allows the user to constrain certain parameter ( maybe
> more than one ) to an interval say [0,2].
> I tried to do this by modifying my input function with an if statement that
> says whenever the parameter is outside of the constrained range, then
> return a large negative number. Unfortunately, when I do this,
> I get strong convergence to this large negative number.
this simply may be saying that your constraints are binding. there are a
few other alternatives to your "penalize the objective function" method to
impose constraints using an unconstrainted optimizer. (you may want to
change the size of the penalty depending on the "distance" from the
constrained parameter space.)
(1) rather than changing the value of the objective function, reset the
values of the parameters if they violate the constraints. i have seen the
following example in Calzorali et al.'s FORTRAN code for GARCH
estimation. to impose the constraint a + b < 1, they rescale the
parameters as a/(a+b) and b/(a+b) whenever a + b > 1.
(2) reparametrize to "substitute out" the constraints. for example,
if you you want to constrain x to the interval (a,b) reparameterize x as
x = a + (b-a)/(1+exp(z)) where z is an unconstrained parameter. (you can
easily check that this function maps monotically from x=b to x=a as
z=-\infty to z=\infty.)
h.
--------------------------------------------------------------------
Time series regression studies give no sign of converging toward the
truth. (Phillip Cagan)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|