Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

# RE: st: RE: Bounded Inequality Constraints

 From "Feiveson, Alan H. (JSC-SK311)" To "statalist@hsphsun2.harvard.edu" Subject RE: st: RE: Bounded Inequality Constraints Date Tue, 6 Dec 2011 09:19:32 -0600

```oops! - misplaced parentheses messed it up - this is correct for the "cheating" verison:

. nl  (price = {A=14500} + (2+3*invlogit( {c1=-.187} ) )*weight   + (-100+30*invlogit( {c2=-.24} ) )*mpg     +   (-120+30*invlog
> it( {c3=0} ) )*length                           )
(obs = 74)

Iteration 0:  residual SS =  4.15e+08
Iteration 1:  residual SS =  4.08e+08
Iteration 2:  residual SS =  4.08e+08
Iteration 3:  residual SS =  4.08e+08
Iteration 4:  residual SS =  4.08e+08
Iteration 5:  residual SS =  4.08e+08
Iteration 6:  residual SS =  4.08e+08
Iteration 7:  residual SS =  4.08e+08

Source |       SS       df       MS
-------------+------------------------------         Number of obs =        74
Model |   226957412     3  75652470.6         R-squared     =    0.3574
Residual |   408107984    70  5830114.06         Adj R-squared =    0.3298
-------------+------------------------------         Root MSE      =  2414.563
Total |   635065396    73  8699525.97         Res. dev.     =  1358.703

------------------------------------------------------------------------------
price |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
/A |   14542.44   5890.631     2.47   0.016     2793.944    26290.93
/c1 |   1.314505   2.331609     0.56   0.575    -3.335742    5.964753
/c2 |  -.2397128     11.354    -0.02   0.983    -22.88456    22.40513
/c3 |   .0175751   5.296615     0.00   0.997    -10.54619    10.58134
------------------------------------------------------------------------------
Parameter A taken as constant term in model & ANOVA table
. di (2+3*invlogit( 1.314505 ) )
4.3647981

. di (-100+30*invlogit( -.2397128) )
-86.789286

. di (-120+30*invlogit( -.2397128) )
-106.78929

(in other words, I get back the OLS estimates)

With more realistic constraints, this has some promise of working.

Al

-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Feiveson, Alan H. (JSC-SK311)
Sent: Tuesday, December 06, 2011 9:02 AM
To: statalist@hsphsun2.harvard.edu
Subject: RE: st: RE: Bounded Inequality Constraints

Dmitriy, Nick   -

Sorry, but I think I "solved" the problem "backwards" in the sense that my parameters c1, c2, c3 lie in the required bounds, but not the coefficients of weight, mpg and length, which are the transformed parameters.

I tried doing it the other way, to constrain the coefficients; e.g.

nl  (price = {A=14500} + (2+3*invlogit( {c1=-.187} )*weight )  + (-100+30*invlogit( {c2=-.24} )*mpg )    +   (-120+30*invlogit( {c3=0} )*length )                          )

but I get garbage, even when I cheated and modified the constraints so that the coefficients are in the range of what you get with OLS.

OLS results:
. reg price weight mpg length

Source |       SS       df       MS              Number of obs =      74
-------------+------------------------------           F(  3,    70) =   12.98
Model |   226957412     3  75652470.6           Prob > F      =  0.0000
Residual |   408107984    70  5830114.06           R-squared     =  0.3574
-------------+------------------------------           Adj R-squared =  0.3298
Total |   635065396    73  8699525.97           Root MSE      =  2414.6

------------------------------------------------------------------------------
price |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
weight |   4.364798   1.167455     3.74   0.000     2.036383    6.693213
mpg |  -86.78928   83.94335    -1.03   0.305     -254.209    80.63046
length |  -104.8682   39.72154    -2.64   0.010    -184.0903   -25.64607
_cons |   14542.43   5890.632     2.47   0.016      2793.94    26290.93
------------------------------------------------------------------------------

So I constrained the coefficient for mpg to lie between -100 and -70, and the coefficent for length to lie between -120 and -90. The initial values are what transforms to the OLS estimates. Still I get convergence problems.

Al

-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Dmitriy Glumov
Sent: Tuesday, December 06, 2011 7:52 AM
To: statalist@hsphsun2.harvard.edu
Subject: Re: st: RE: Bounded Inequality Constraints

Al,

Thank you very much for showing the tranformation, this is very
helpful. However, I have some trouble understanding the values you
chose in the transformation (I apologize for using a bad example), so
would it be possible for you to briefly go over them. In particular
would this transformation account for the upper bound of 5, if the
coefficients were to go that far? Again, thank you for the help and
consideration.

Dmitriy

On Mon, Dec 5, 2011 at 12:09 PM, Feiveson, Alan H. (JSC-SK311)
<alan.h.feiveson@nasa.gov> wrote:
> Dmitriy - The example from the auto data doesn't work very well, but if you want to crank it out by brute force, you could use nonlinear least squares with a logit transformation:
>
> nl  (price = {A} + logit( ( {c1=3.5}-2)/3) * weight  + logit( ( {c2=3.5}-2)/3) * mpg   +   logit( ( {c3=3.5}-2)/3) * length  )
>
>
>
>     Source |       SS       df       MS
> -------------+------------------------------         Number of obs =        74
>       Model | -2.6420e+09     3  -880670066         R-squared     =   -4.1602
>    Residual |  3.2771e+09    70  46815365.6         Adj R-squared =   -4.3814
> -------------+------------------------------         Root MSE      =  6842.176
>       Total |   635065396    73  8699525.97         Res. dev.     =  1512.858
>
> ------------------------------------------------------------------------------
>       price |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
> -------------+----------------------------------------------------------------
>          /A |   1677.936   5890.632     0.28   0.777    -10070.56    13426.43
>         /c1 |   3.870228    .822251     4.71   0.000       2.2303    5.510156
>         /c2 |   2.000028   .0023649   845.71   0.000     1.995311    2.004744
>         /c3 |   2.000001   .0000529 37836.18   0.000     1.999896    2.000106
> ------------------------------------------------------------------------------
>  Parameter A taken as constant term in model & ANOVA table
>
>
>
> The coefficients c2 and c2 are estimated at their lowest allowable value (2.0) because they are negative in the unrestricted model. In this example, I didn't try to restrict the constant term ("A").
>
> Al Feiveson
>
>
>
>
>
> -----Original Message-----
> From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Dmitriy Glumov
> Sent: Monday, December 05, 2011 8:21 AM
> To: statalist@hsphsun2.harvard.edu
> Subject: st: Bounded Inequality Constraints
>
> Dear Statalist Users,
>
> I need to include inequality constraints into the regression I am
> working on. In particular, I would like the coefficients of all the
> independent variables to be between 2.5 and 5. To provide you with an
> example, suppose I was using an Auto dataset and running the following
> simple regression:
>
> regress price mpg weight length
>
> This regression needs to be constrained in such a way so that the
> coefficients for mpg, weight, and length all stay bounded between 2.5
> and 5 (and disregarded if they are outside this range). I know there
> has been a fair amount of discussion in regards to this topic and
> Maarten has posted this solution
> (http://www.stata.com/support/faqs/stat/intconst.html), but I wasn't
> sure if there's potentially an another, perhaps more appropriate way,
> to solve the problem I am dealing with - one that requires bounding
> (rather than a one-sided inequality). Moreover, I could not figure out
> how to transform the solution that Maarten posted into the one where
> both bounds are accounted for. Hence, any help with this would be
> greatly appreciated. Thank you for your consideration.
>
> Regards,
> Dmitriy
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
>
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```