Bookmark and Share

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]

Re: st: Lag operators on panel data inside -bysort-


From   Richard Herron <richard.c.herron@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Lag operators on panel data inside -bysort-
Date   Mon, 29 Oct 2012 18:29:09 -0400

Thanks for explanation. That subscripts aren't equivalent to variable
names is the concept that I'm missing. Whenever I generate additional
variables I suspect that I'm doing something wrong, but here it's the
best (only) approach.

On Mon, Oct 29, 2012 at 2:53 PM, Nick Cox <njcoxstata@gmail.com> wrote:
> 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/
*
*   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/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index