Bookmark and Share

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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: Inequality constraints in cnsreg

From   Steven Samuels <>
Subject   Re: st: Inequality constraints in cnsreg
Date   Fri, 5 Nov 2010 16:34:36 -0400



Herve, I don't find the FAQ all that enlightening either. Here is a solution to a reduced problem:

Your equation is:
y =  b0 + b1 x1 + b2 x2 =
  = (b1 - b2) x1 +  + b2( x1 - x2)

If b1 - b2>0 then b1 - b2 = exp(c)  for some number c

Let z = x2 - x1

Then fit the *non-linear* equation

y = exp(c)*x1 + b2 Z
and solve for b2

***********CODE BEGINS******
sysuse auto, clear
keep if rep78 !=.
rename rep78 x1
rename  foreign x2
rename mpg y

gen z = x1 - x2
reg y x1 x2  //constraint not met

nl (y = {alpha} + exp({c})*x1 + {b2}*z)  //get constant & b2

nlcom b1: log(_b[c:_cons]) +_b[b2:_cons] // get b1
*********CODE ENDS***********


Steven J. Samuels
18 Cantine's Island
Saugerties NY 12477
Voice: 845-246-0774
Fax:    206-202-4783

On Nov 5, 2010, at 2:07 PM, Herve STOLOWY wrote:

Dear Statalisters:

I am using Stata 11.1

I would like to use cnsreg to create the following constaints:

Y X1 X2 X3 X4
constriant 1 X2 > X1
constraint 2 X4 > X3

I have read the threads which existed a few years ago and a recent one
on the topic of inequality constraints

I have also read the answer from Marteen Buis and his suggested solution

I do not understand very well the suggested solution and I am not
trained in programming.

Consequently, my question is the following: is there a "not too complex"
solution to get the constraints I need?

Best regards

Hervé Stolowy

*   For searches and help try:

*   For searches and help try:

© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index