Statalist


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

Fwd: AW: st: question about rolling regression and nlcom


From   Kit Baum <baum@bc.edu>
To   statalist@hsphsun2.harvard.edu
Subject   Fwd: AW: st: question about rolling regression and nlcom
Date   Mon, 13 Oct 2008 08:25:26 -0400


From: Kit Baum <baum@bc.edu>
Date: October 13, 2008 7:32:26 AM EDT
To: "Nadine Kalwey" <nadine.kalwey@uni-koeln.de>
Subject: Re: AW: st: question about rolling regression and nlcom

Use scalars, not locals. -rolling- wants numbers, not strings.

prog drop _all

program roll, rclass
version 9.2
syntax varlist(ts) if
regress `varlist' `if'
nlcom _b[l.income]/_b[l.consumption]
mat nadineb = r(b)
return scalar lnadineb = nadineb[1,1]
mat nadinev = r(V)
return scalar lnadinev = nadinev[1,1]
end

rolling lnadineb=r(lnadineb) ladinev=r(lnadinev), window(10) ///
saving(nadine2,replace): roll d.income l.income l.consumption if tin(1960q4,)


Kit Baum, Boston College Economics and DIW Berlin
http://ideas.repec.org/e/pba1.html
An Introduction to Modern Econometrics Using Stata:
http://www.stata-press.com/books/imeus.html


On Oct 13, 2008, at 04:53 , Nadine Kalwey wrote:


Thank you, Kit, for your help.

I wrote the program as follows:

program roll, rclass
version 9.2
syntax varlist(ts) if
regress `varlist' `if'
nlcom _b[l.mmr]/_b[l.lr]
mat nadineb = r(b)
local localnadineb = nadineb[1,1]
return local lnadineb =`localnadineb'
mat nadinev = r(V)
local localnadinev = nadinev[1,1]
return local lnadinev =`localnadinev'
end

executed it with

use emerging, clear

rolling lnadineb= r(localnadineb) ladinev= r(localnadinev), window(60) saving(nadine2,replace): roll d.lr l(1/2)d.lr l(0/3)d.mmr l.lr l.mmr if
country ==4

Now, it is running "roll" on the estimation sample but without producing any
estimates:

Rolling replications (265)
1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5
xxxxxxxxxxxxxxxxxxxeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee	50
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee	100
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee	150
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee	200
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee	250
eeeeeeeeeeeeeee
file nadine2.dta saved

What have I done wrong?

Thanks again
Nadine

-----Ursprüngliche Nachricht-----
Von: Kit Baum [mailto:baum@bc.edu]
Gesendet: Samstag, 11. Oktober 2008 17:00
An: Nadine Kalwey
Cc: statalist@hsphsun2.harvard.edu
Betreff: Re: st: question about rolling regression and nlcom


< >
You can't return a matrix as a local.


matrices:
                 r(b) :  1 x 1
                 r(V) :  1 x 1

. local junk `r(b)'

. di "`junk'"
matrix

You also must move r(b), r(V) to new matrices before you can refer to
their elements (as with e(b), E(V)).
You could extract the [1,1] element of r(b) and the [1,1] element of
r(V) and save them as locals and return them.

. mat b = r(b)

. local elt = b[1,1]

. di "`elt'"
.0000498711997947

etc.

Kit Baum, Boston College Economics and DIW Berlin
http://ideas.repec.org/e/pba1.html
An Introduction to Modern Econometrics Using Stata:
http://www.stata-press.com/books/imeus.html


On Oct 11, 2008, at 09:51 , Nadine Kalwey wrote:

Dear Kit,

I have some problems obtaining standard errors from nonlinear
combinations
of estimators after running a rolling regression. In July 2007, in the context of "rolling" and "lincom" you suggested to someone to write a
'wrapper' program. I tried to do the same for 'nlcom':

program roll, rclass
version 9.2
syntax varlist(ts) if
regress `varlist' `if'
nlcom -(_b[l.mmr]/_b[l.lr])
return local b =`r(b)'
return local v =`r(V)'
end

and then try to execute the program with:
use emerging, clear

rolling b=r(b) v=r(V), window(60) saving(nadine, replace): roll lrd
l(1/2).lrd l(0/3).mmrd l.lr l.mmr  if country ==4

Unfortunately, I receive the error message "matrix not found, an error
occurred when rolling executed roll, r(111)".

It would be great if you could help me with that!

Thanks for your time,

Best regards
Nadine

**********************************
Nadine Kalwey
University of Cologne
Department of Economic Policy

Wiso-Hochhaus, Room 731a
Albertus-Magnus Platz
D-50923 Köln

PHONE: +49 (0)221 470-2378
FAX: +49 (0)221 470-5188
email: nadine.kalwey@uni-koeln.de






*
*   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   |   What's new   |   Site index