Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Nick Cox <njcoxstata@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: Lag operators on panel data inside -bysort- |
Date | Mon, 29 Oct 2012 18:53:39 +0000 |
Working backwards from the bottom: 1. Variable names with subscripts are not acceptable within Stata as equivalent to variable names. 2. The previous -regress- doesn't work because the sort order implied by a reference to L.invest is -sort company year- which clashes with the -sort- order you are asking for. 3. -xtile()- is an -egen- function that must be installed from -egenmore- (SSC), as you are asked to explain. I think to do what you are asking then, as you say, you need to step outside the framework of -tsset- by tsset company year gen previnvest = L.invest bysort invest_q : regress mvalue previnvest but even then what sense does this make unless exceptionally companies don't change between quantile categories? Nick On Mon, Oct 29, 2012 at 3:02 PM, Richard Herron <richard.c.herron@gmail.com> wrote: > I would like to use lag operators on panel data inside a -bysort- > command, but I get the -not sorted- error. For example, using the > following data, > > * > webuse grunfeld, clear > xtset company year > > * generate quantiles with -xtile- from -egenmore- (SSC) > egen invest_q = xtile(invest), by(year) > * > > neither of the following two lines work. > > * > bysort invest_q: regress mvalue l.invest > bysort invest_q (company year): regress mvalue invest[_n-1] > * > > I thought -xtset-'s effects were persistent, but the error makes > sense. Is there an elegant solution? (It would be nice to be able to > use lag operators on the fly.) Or is the best option to generate > lagged variables as follows. > > * > generate linvest = l.invest * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/