Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: Re: Re: Re: Re: Serial Correlation in system estimator


From   "Jan Pettersson" <jan.pettersson@ne.su.se>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: Re: Re: Re: Re: Serial Correlation in system estimator
Date   Fri, 5 Mar 2004 11:40:13 +0100

Just a short addendum for the archives if someone should bump into this and
apply it.
The code below works fine, however, to save space, the operation
 "*generate independent variables to match wide format"
is not needed since variables not mentioned in the reshape command are
automatically "copied".
/Jan

----- Original Message ----- 
From: "Scott Merryman" <smerryman@kc.rr.com>
To: <statalist@hsphsun2.harvard.edu>
Sent: Thursday, March 04, 2004 5:22 AM
Subject: st: Re: Re: Re: Serial Correlation in system estimator


> Jan,
>
> With -foreach- , -forvalues- and -while- you can cover a lot of looping
type
> needs.
>
> In this case, I believe the following should work:
>
> *rename dependent variable
> local i = 1
> foreach var of varlist ep-rv {
>  rename `var'  dep`i'
>  local i = `i' + 1
>  }
>
>
> *generate independent variables to match wide format
> local i = 1
> while `i' <=4 {
>  foreach var of varlist x - p {
>   gen indep`var'`i' = `var'
>   }
>  local i = `i' + 1
> }
>
> drop x - p
> gen year = _n
>
> reshape long dep indepx indepz indepa indepp,  i(year) j(id)
>
> tsset id year
>
> tab id, gen(D)
>
> *Generate individual intercepts and independent variables
> foreach var1 of varlist D* {
>      foreach var2 of varlist indep* {
>          gen `var1'`var2' = `var1'*`var2'
>          }
>   }
>
> aorder
> drop D1indepp D2indepp D3indepa D4indepa D3indepz D4indepz
>
> xtgls dep D* , nocons  p(c) corr(psar1)
>
>
> **Example**
>
> Suupose your data looks like this:
>
> . cl, noobs
>
>        ep         ea         eo         rv          x          z
a
> p
>  12.38898  -.1741565    3.10788   9.493736   .1369841   .2551499
.2769154
> .7152805
>  10.04978   1.450661   2.305812   11.04732   .6432207   .0445188
.1180158
> .699069
>  10.30955   .2076075   1.042386   9.105699   .5578017   .4241557
.4079702
> .2322688
>  10.17632   .8222673   3.237755   11.57764   .6047949   .8983462
.7219492
> .0981878
>  12.61388   .4161032   3.531995   11.05705    .684176   .5219247
.871691
> .5948404
>  9.861345   .2186571   2.543519   10.47454   .1086679   .8414094
.4611429
> .3533874
>  10.94411  -.7736335   1.551358   11.09245   .6184582   .2110077
.4216726
> .8071709
>  13.13602   1.216412   1.486686   9.612597   .0610638   .5644092
.8944746
> .1024369
>  10.61442  -.2561719   2.773349   10.91753   .5552388   .2648021
.0580662
> .5773884
>  12.10055   .8602635    2.08501   10.12703   .8714491   .9477426
.6759487
> .1091783
>
> .
> . local i = 1
>
> . foreach var of varlist ep-rv {
>   2.         rename `var'  dep`i'
>   3.
> .         local i = `i' + 1
>   4.         }
>
> .
> . local i = 1
>
> . while `i' <=4 {
>   2.         foreach var of varlist x - p {
>   3.                 gen indep`var'`i' = `var'
>   4.                 }
>   5.         local i = `i' + 1
>   6. }
>
> .
> . drop x - p
>
> . gen year = _n
>
> . reshape long dep indepx indepz indepa indepp,  i(year) j(id)
> (note: j = 1 2 3 4)
>
> Data                               wide   ->   long
> --------------------------------------------------------------------------
---
> Number of obs.                       10   ->      40
> Number of variables                  21   ->       7
> j variable (4 values)                     ->   id
> xij variables:
>                      dep1 dep2 ... dep4   ->   dep
>             indepx1 indepx2 ... indepx4   ->   indepx
>             indepz1 indepz2 ... indepz4   ->   indepz
>             indepa1 indepa2 ... indepa4   ->   indepa
>             indepp1 indepp2 ... indepp4   ->   indepp
> --------------------------------------------------------------------------
---
>
> . tsset id year
>        panel variable:  id, 1 to 4
>         time variable:  year, 1 to 10
>
> . tab id, gen(D)
>
>          id |      Freq.     Percent        Cum.
> ------------+-----------------------------------
>           1 |         10       25.00       25.00
>           2 |         10       25.00       50.00
>           3 |         10       25.00       75.00
>           4 |         10       25.00      100.00
> ------------+-----------------------------------
>       Total |         40      100.00
>
> .  foreach var1 of varlist D* {
>   2.      foreach var2 of varlist indep* {
>   3.          gen `var1'`var2' = `var1'*`var2'
>   4.          }
>   5.   }
>
> .
> .  aorder
>
> . drop D1indepp D2indepp D3indepa D4indepa D3indepz D4indepz
>
> . xtgls dep D* , nocons  p(c) corr(psar1)
>
> Cross-sectional time-series FGLS regression
>
> Coefficients:  generalized least squares
> Panels:        heteroskedastic with cross-sectional correlation
> Correlation:   panel-specific AR(1)
>
> Estimated covariances      =        10          Number of obs      =
40
> Estimated autocorrelations =         4          Number of groups   =
4
> Estimated coefficients     =        14          Time periods       =
10
>                                                 Wald chi2(14)      =
20046.72
> Log likelihood             = -34.20722          Prob > chi2        =
0.0000
>
> --------------------------------------------------------------------------
----
>          dep |      Coef.   Std. Err.      z    P>|z|     [95% Conf.
Interval]
> -------------+------------------------------------------------------------
----
>           D1 |   10.37989    .703485    14.75   0.000     9.001087
11.7587
>     D1indepa |   4.467583   .8529961     5.24   0.000     2.795741
6.139424
>     D1indepx |  -.4760266   .8182822    -0.58   0.561     -2.07983
1.127777
>     D1indepz |  -2.232169    .889334    -2.51
0.012    -3.975231   -.4891059
>           D2 |   .0150844   .4253509     0.04   0.972     -.818588
.8487569
>     D2indepa |   .8427272   .7865749     1.07   0.284    -.6989314
2.384386
>     D2indepx |   .5912364   .7011174     0.84   0.399    -.7829283
1.965401
>     D2indepz |  -.6293221   .7640201    -0.82   0.410    -2.126774
.8681297
>           D3 |   2.123046    .575656     3.69   0.000     .9947813
3.251311
>     D3indepp |   .9182996   .8079717     1.14   0.256    -.6652959
2.501895
>     D3indepx |  -.1983896   .8707189    -0.23   0.820    -1.904967
1.508188
>           D4 |   9.837125   .5677948    17.33   0.000     8.724267
10.94998
>     D4indepp |   .7172952   .7409337     0.97   0.333    -.7349082
2.169499
>     D4indepx |    .743207   .7773819     0.96   0.339    -.7804335
2.266848
> --------------------------------------------------------------------------
----
>
> .
> .
> .
> end of do-file
>
> Hope this helps,
> Scott
>
>
>
>
> ----- Original Message ----- 
> From: "Jan Pettersson" <jan.pettersson@ne.su.se>
> To: <statalist@hsphsun2.harvard.edu>
> Sent: Wednesday, March 03, 2004 1:23 PM
> Subject: st: Re: Re: Serial Correlation in system estimator
>
>
> > Thanks a lot, I guess this will work. However, I have an additional
> > problem...
> > My system has the following form:
> > EP =  a10 + a11*X + a12*Z + a13*A
> > EA = a20 + a21*X + a22*Z + a23*A
> > EO = a30 + a31*X + a32*P
> > RV  =  a40 + a41*X + a42*P
> >
> > Data is now in wide format. As I understand it, I must reshape data into
> > long. In order to "tag" e.g. X to all dependent vars, would it be
correct to
> > first make three "copys" of this variable (as well as one copy of Z, A,
and
> > P) before reshape? I am thinking of:
> >
> > rename EP dep1
> >
> > rename EA dep2
> >
> > rename EO dep3
> >
> > rename RV dep4
> >
> >
> >
> > rename X indeA1
> >
> > rename Z indeB1
> >
> > rename A indeC1
> >
> > rename P indeD1
> >
> >
> >
> > gen indeA2 = indeA1
> >
> > gen indeA3 = indeA1
> >
> > gen indeA4 = indeA1
> > etc.
> >
> > and then:
> > reshape long dep indeA indeB indeC indeD, i(year) j(id)
> >
> > But clearly, there must be a better way of doing this... Any help
> > appreciated.
> > All best,
> > Jan
>
> *
> *   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/
>

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



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