Notice: On March 31, it was **announced** that Statalist is moving from an email list to a **forum**. The old list will shut down on April 23, and its replacement, **statalist.org** is already up and running.

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

From |
Austin Nichols <austinnichols@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: Constrained Regression in Stata |

Date |
Fri, 3 Jun 2011 10:05:38 -0400 |

Meg22 <meadhbh2@gmail.com>: The FAQ http://www.stata.com/support/faqs/stat/intconst.html advises that "The examples in this tutorial are for illustration purposes only. If you need to fit a linear regression with interval constraints, use the Stata command nl. " but I don't see an example of how to do constrained regression using -nl- linked from there. Here is a simple example: sysuse auto, clear reg price mpg turn, nohe nl (price={b1}*mpg+{b2}*turn+{_cons}), nolog * constrain coef on mpg to be positive: nl (price=exp({b1})*mpg+{b2}*turn+{_cons}), nolog nlcom exp(_b[/b1]) Note that when you constrain the coef on mpg to be nonnegative, the estimated coef exp(b1) gets driven right to zero as b1 seeks negative infinity and you wind up with a model essentially equivalent to: reg price turn If you want to impose all coefs are nonnegative and sum to one, try: sysuse auto, clear g gpm=1/mpg g wt=weight/1000 g l=length/1000 g tn=turn/1000 reg gpm wt l tn, nohe * constrained to be positive: nl (gpm=exp({b1})*wt+exp({b2})*l+exp({b3})*tn+{_cons}), nolog nlcom (exp(_b[/b1])) (exp(_b[/b2])) (exp(_b[/b3])), post * constrained to be positive and sum to one: nl (gpm=exp({b1})*wt+exp({b2})*l+(1-exp({b1})-exp({b2}))*tn+{_cons}) nlcom (exp(_b[/b1])) (exp(_b[/b2])) (1-exp(_b[/b1])-exp(_b[/b2])), post But imposing such assumptions tends to result in very implausible models, unless the unconstrained coefs are very close to satisfying your constraints. See also p.1188 of [R] nl. On Fri, Jun 3, 2011 at 2:03 AM, Nick Cox <njcoxstata@gmail.com> wrote: > This is an FAQ. See > > How do I fit a regression with interval constraints in Stata? > Isabel Cañette, StataCorp > October 2006; updated July 2008; minor revisions April 2011 > http://www.stata.com/support/faqs/stat/intconst.html > > Nick > > On Fri, Jun 3, 2011 at 12:24 AM, Meg22 <meadhbh2@gmail.com> wrote: > >> I need to do a constrained regression in stata-I need all the beta >> coefficents to be positive and sum to 1. >> >> I have 11 independent variables so my regression is: >> reg Rrf bills it lt cor lcvalue lcgrowth medcap smallcap noncanbonds us jap >> if fundno ==`i' >> >> I need all the betas to be positive, sum to 1 and there to be a constant. >> >> I got the summing to 1 bit I think: >> constraint define 1 bills + it + lt + cor + lcvalue + lcgrowth + medcap + >> smallcap + noncanbonds + us + jap = 1 >> cnsreg Rrf bills it lt cor lcvalue lcgrowth medcap smallcap noncanbonds us >> jap, constraint(1) >> * * 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/

**Follow-Ups**:**Re: st: Constrained Regression in Stata***From:*Steven Samuels <sjsamuels@gmail.com>

**References**:**st: Constrained Regression in Stata***From:*Meg22 <meadhbh2@gmail.com>

**Re: st: Constrained Regression in Stata***From:*Nick Cox <njcoxstata@gmail.com>

- Prev by Date:
**Re: st: RE: problem with regexm leading to "regexp: unterminated ()" error for all observations** - Next by Date:
**Re: st: simulating random numbers from zero inflated negative binomial estimates** - Previous by thread:
**Re: st: Constrained Regression in Stata** - Next by thread:
**Re: st: Constrained Regression in Stata** - Index(es):