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

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

From |
Le Wang <statauser@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
st: two-step nonlinear least squares estimation |

Date |
Tue, 7 Sep 2010 14:54:56 -0400 |

Hi there, I have a question regarding -nl- command. Thank you for your time. I would like to estimate the following model in two steps, say, y = beta_0*x + beta_1*exp( (z*gamma_0) *theta) 1) Given theta, gamma_0 is obtained from the regression of x on z*theta; generate predicted values from this estimated equation, xhat. 2) Then estimate the model replacing (z*gamma_0) with the predicted values, xhat, above via nonlinear least squares estimation. I was able to estimate this model using -optimize()- in Mata, but needed to code the variance-covariance matrix myself. I was wondering if this could be done using -nl- command. For the second step, it is straightforward. But for the first step, -nl- program doesn't seem to behave the way as the -optimize()- command does; Below is my codes, Stata says that "nltest returned 100, verify that nltest is a function evaluator program". But I can't quite figure out where the codes went wrong. ---------------------------------------------------------- clear set more off set seed 123456 set obs 1000 * Simulate the data g x = rnormal() g z = rchi2(1) g v = rnormal() * The data generating process is different from what we are trying to estimate g y = 1 + x + z + v * The main program cap program drop nltest program nltest version 11 syntax varlist(min=3 max=3) [if],at(name) local y : word 1 of `varlist' local x : word 2 of `varlist' local z : word 3 of `varlist' tempname b0 b1 theta scalar `b0' = `at'[1,1] scalar `b1' = `at'[1,2] scalar `theta' = `at'[1,3] tempvar xhat ztheta g `ztheta' = `z'*`theta' reg `x' `ztheta' predict `xhat' // return the function value replace `y1' = `b0'*`x1' + `b1'*exp(`theta'*`xhat')) end * Estimation nl test @ y x z, nparameters(3) ---------------------------------------------------------- Thanks again for your help! Best, Le * * 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/

- Prev by Date:
**Re: st: Using pathreg in STATA** - Next by Date:
**st: Upcoming NetCourses** - Previous by thread:
**st: ml option "noclear" does not work with ml method "d0". Why?** - Next by thread:
**st: Upcoming NetCourses** - Index(es):