On Wed, 2011-10-26 at 21:28 +0200, Riccardo (Jack) Lucchetti wrote:
> On Wed, 26 Oct 2011, Giuseppe Vittucci wrote:
> 
> > The following code (adapted from the manual):
> >
> > mle logl = check ? - ln(pstr_cssr(y,X,q,gamma,c,m,Z) : NA
> > scalar check = (gamma > zeros(r,1)) && (c >= c_min) && (c <=c_max)
> > params gamma c
> > end mle
> >
> > simply checks that the unconstrained maximum is in the parameter space
> > and returns an error if it is not so.
> > But is there a way to find such a constrained maximum in gretl?
> >
> > If there is not, what is the best way to circumvent the problem?
> 
> There isn't. The idea is to check whether the parameters are admissible 
> when the loglik is computed, just like you're doing.
> 
> A couple of tips:
> 
> 1) I suppose gamma is a vector; you can achieve the same result as what 
> I think you're tryng to do by writing (gamma > 0) (cool, huh?)

Cool ;-)

> 
> 2) if you have constrained parameters, you're probably much better off if 
> you use some 1-to-1 transformation to some unbounded parameter. In your 
> example, assuming you really mean to use <= and >= rather than strict 
> inequalities, you may use
> 
> mle logl = ln(pstr_cssr(y,X,q,gamma,c,m,Z)
>       matrix gamma = exp(lg)
>       scalar c = c_min + 0.5*(sin(ac) + 1)*c_max
>       params lg ac
> end mle
> 
> and then retrieve the $vcv for your original parametrisation by the delta 
> method. Otherwise, if what you mean is really c_min < c < cmax (more 
> customary in ml problems), then a nicer alternative is
> 
>       scalar c = c_min + 0.5*(tanh(ac) + 1)*c_max
> 
> or perhaps
> 
>       scalar c = c_min + cnorm(ac)*c_max
> 
> HTH,

Thanks.
Very nice tricks.
PS: Also c, c_min and c_max were vectors but it doesn't matter. ;-)

> 
> Riccardo (Jack) Lucchetti
> Dipartimento di Economia
> Università Politecnica delle Marche
> 
> r.lucchetti(a)univpm.it
> http://www.econ.univpm.it/lucchetti
> _______________________________________________ Gretl-users mailing list 
> Gretl-users(a)lists.wfu.edu http://lists.wfu.edu/mailman/listinfo/gretl-users



Reply via email to