The use of noconstant
in the treatment equation appears justified. If you specify noconstant
in the main equation, as well, then this prescribes that when x1==x2==x3==y*==0
, then y==0
.
There are two or three good reasons to specify noconstant
.
- You have a regression through origin. E.g., you measured the same distance with a ruler, and by riding a bike and measuring the number of rotations (that's how they used to measure the marathon distances before GPS and Google Earth). So the two measurements are proportional to one another, and the intercept just does not make sense. Zero intercept comes up in finance, too, in fully effective markets, but that is more likely to be viewed as a testable hypothesis.
- If you have variables that sum up to 1, e.g., all dummies out of a categorical variable (
xi, noomit
in Stata slang; ibn.factor
in Stata 11+ factor variable notation)
- If somehow you already have an intercept that came out from another part of a model -- that's often an issue with
gllamm
and all the complicated equations that may have an intercept sneaking in from levels higher than one.
Beyond that, you need very serious reasons to omit the intercept, and the information you provided is insufficient to judge what it is exactly that allows you to omit the intercept.
See also: When is it ok to remove the intercept in a linear regression model?