# st: Generate new variable with an implicit formulation

 From Bob Hammond To statalist@hsphsun2.harvard.edu Subject st: Generate new variable with an implicit formulation Date Wed, 08 Aug 2007 10:43:13 -0500

I would like to define a new variable based on two current variables, but the new variable cannot be expressed as an explicit function of the current variables. The relationship is:

x = n*y^(n-1) - (n-1)*y^n

where I have data on x and n and would like to create a new variable, y. x and y are restricted to the real numbers on the open interval (0,1) and n is restricted to being a positive integer. Under these restrictions, the function is well-behaved and provides a unique solution, but not an explicit formulation. I can generate y with the following loop:

forvalues i=0(0.001)1 {
replace y=`i' if x - n*`i'^(n-1) + (n-1)*`i'^n < 0.0001 & x - n*`i'^(n-1) + (n-1)*`i'^n > -0.0001
}

but I am wondering if there is a more efficient and precise way. If this type of loop is best, what precision would you recommend for the steps of `i’ and the tolerance (the ><0.0001)? (I’m on Intercooled Stata 9 for Windows if that matters.) Thanks in advance,

Bob

--
------------------------------------------------------------------------
Bob Hammond
Department of Economics
Vanderbilt University
http://people.vanderbilt.edu/~robert.g.hammond/ <http://people.vanderbilt.edu/%7Erobert.g.hammond/>
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/