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 on April 23, and its replacement, statalist.org is already up and running.


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

st: Re: rolling and ts operators


From   Nuno Soares <ndsoares@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   st: Re: rolling and ts operators
Date   Tue, 25 Oct 2011 10:12:44 +0100

Dear Richard,

Thank you so much! I didn't know - rolling - was panel data aware!
It's much more efficient than the code I have.

However, although your insights solve my problem, the main question
still remains: why does Stata use 6 observations and not 7....

If I just tweak your code a litle bit (to include 5 indep variables as
in my case I squared mvalue);

* start code *

webuse grunfeld, clear
rename company id
gen mvaluesq=mvalue^2
xtset id year, year
gen end = year
tempfile stats
rolling _b N = e(N), window(7) recursive saving(`stats', replace) ///
    : reg invest mvalue l.mvalue f.mvalue kstock mvaluesq
merge 1:1 id end using `stats', nogenerate
xtset id year, year

* calculating error term *
gen e = invest - (_b_cons + _b_mvalue*mvalue + _stat_2*l.mvalue ///
    + _stat_3*f.mvalue + _b_kstock*kstock+_b_mvaluesq*mvaluesq)

* end code *

If we just check the data we'll notice that N starts with 6
observations, which doesn't make sense... I must be missing
something...


Best wishes,

Nuno


Re: st: rolling and ts operators

From	  Richard Herron <richard.c.herron@gmail.com>
To	  statalist@hsphsun2.harvard.edu
Subject	  Re: st: rolling and ts operators
Date	  Mon, 24 Oct 2011 09:50:16 -0400

 It may be easiest to think of -rolling- and -regress- in two steps.
First -rolling- grabs a window of 7 observations and hands off these
data to -regress-. Then -regress- regresses, but is only able to use 6
of these observations because in the first window the lagged value
isn't available.

If you add -N = e(N)- to your -rolling- command you can see how many
observations -regress- used.

Also, there is no need to use loops with -rolling-; it is panel aware
(at least in 11.2). The following should help with the -N = e(N)- bit.

webuse grunfeld, clear
rename company id
keep if id == 2 // just a test firm
xtset id year
gen end = year
tempfile stats
rolling _b N = e(N), window(7) recursive saving(`stats', replace) ///
    : reg invest mvalue l.mvalue f.mvalue kstock
merge 1:1 id end using `stats', nogenerate
xtset id year

* calculating error term *
gen e = invest - (_b_cons + _b_mvalue*mvalue + _stat_2*l.mvalue ///
    + _stat_3*f.mvalue + _b_kstock*kstock)



On 24 October 2011 13:52, Nuno Soares <ndsoares@gmail.com> wrote:
> Hi everyone,
>
> I'm having a problem with the - rolling - command the the use of time
> series operators. I need to estimate a model for several firms (id)
> and several years in a rolling regression with a window of at least 7
> years and the recursive option.
>
> The code I'm using is the following:
>
> use "test.dta", clear
> keep if id==2 * just a test firm
> xtset id year
> gen end=year
> tempfile stats
> levelsof id, local(ids)
> foreach id of local ids {
>        cap rolling , window(7) recursive saving(`stats', replace): reg
> depvar indepvar1 l.indepvar1 f.indepvar1 indepvar2 indepvar3 if
> id==`id'
>        cap merge 1:1 id end using "`stats'", update replace
>        cap drop _merge
> }
> sort id year
> xtset id year
> * calculating error term *
> gen e=depvar-(_b_cons+_b_indepvar1*indepvar1+_b_stat2*l.indepvar1+_b_stat3*f.indepvar1+_b_indepvar2*indepvar2+_b_indepvar3*indepvar3)
>
>
> Given the l. operator I was expecting that Stata would use 8
> observations given that the first l.indepvar1 would be missing an thus
> it wouldn't have enough observations to estimate the first model with
> only six observations (while the window option is set at 7,
> restricting the sample to the first 7 observations would lead to have
> only 6 eligible observations, and thus not enough data to estimate the
> regression). This however isn't happening with Stata reporting
> estimated coefficient starting from the first 7 observations. Any
> clues on why this is happening?
>
> Best wishes,
>
> Nuno
>

*
*   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/


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