Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: Constrained Nonlinear Least Squares

From   Xiaofei Yu <>
Subject   st: Constrained Nonlinear Least Squares
Date   Fri, 14 Oct 2005 12:22:50 -0700

Hi everyone,

Can STATA actually do constrained nonlinear-squares regression of two
equations, (A) and (B) below, when one of the equations involves a
condition that generates an indicator variable to be used in (A)?

I have the following system of equations.  The endogenous and
indicator variable, Indi(t), is used as an explanatory variable in
(A), but the parameters defining Indi(t) need to be estimated from

The model and the constraint need to be estimated simultaneously since
beta and gamma that define Indi need to be estimate from (A).

I run a nl command and guess some initial values; however, the results
don't seem to be correct intuitively.  I'd appreciate your inputs and
if you can shed some lights on this.

(A) The regression model:

R(t) - R(t-1) =3D [lamdau*Indi(t)+lamdad*(1-Indi(t)]*[beta*rate(t) +
gamma - R(t-1)] + error(t)

(B) The constraint that defines the indicator variable I(t) above:

I(t)  =3D  1 if beta*rate(t) + gamma - R(t-1) > 0
        =3D  0 if beta*rate(t) + gamma - R(t-1) < 0

I coded the following commands in STATA:
cap program drop nlratechg
Program nlratechg
          if "`1'"=3D=3D"?" {
          global S_A "lamdau lamdad beta gamma"
          global lamdau=3D1
          global lamdad=3D1
          global beta=3D1
          global gamma=3D1
gen Indi=3D1 if ($beta*rate+$gamma - L.R) > 0
replace Indi=3D0 if ($beta*rate+$gamma - L.R) < 0
replace `1'=3D($lamdau*Indi + $lamdad*(1-Indi))*($beta*rate + $gamma =96 L.=
drop Indi

nl ratechange dR

*   For searches and help try:

© Copyright 1996–2015 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index