Statalist


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

st: re: help with sureg


From   Kit Baum <baum@bc.edu>
To   statalist@hsphsun2.harvard.edu
Subject   st: re: help with sureg
Date   Mon, 13 Oct 2008 17:15:51 -0400

< >
Thomas said:

I am trying to use sureg on a dataset of approximately 50 firms with
900 trading days of observations:

. xtset
       panel variable:  CompanyNum (strongly balanced)
        time variable:  TradeDateNum, 501 to 1402
                delta:  1 unit

I keep only the necessary variables:

. keep TradeDateNum CompanyNum LnRt*

and reshape from long to wide for the company specific variables:

. reshape wide LnRtFiveYrMid LnRtStock, i(TradeDateNum) j(CompanyNum)
(note: j = 1 2 3 4 5 6 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24
25 26 27 28 29 30 32 33
> 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57)

Data                               long   ->   wide
-----------------------------------------------------------------------------
Number of obs.                    47806   ->     902
Number of variables                  10   ->     113
j variable (53 values)       CompanyNum   ->   (dropped)
xij variables:
                          LnRtFiveYrMid   ->   LnRtFiveYrMid1
LnRtFiveYrMid2 ... LnRtFiveYrM
> id57
                              LnRtStock   ->   LnRtStock1 LnRtStock2
... LnRtStock57
-----------------------------------------------------------------------------

I then attempt to execute sureg on my current pooled OLS specification
for just two firms:

. sureg (LnRtFiveYrMid1 L(1/2).LnRtFiveYrMid1 L(0/4).LnRtCDX LnRtCMT
LnRtTED L(0/2).LnRtStoc
> k1) (LnRtFiveYrMid2 L(1/2).LnRtFiveYrMid2 L(0/4).LnRtCDX LnRtCMT LnRtTED L(0/2).LnRtStock2
> )
variable CompanyNum not found

and I get the error CompanyNum (the dropped variable after reshaping
to wide) not found.  So far, the only way it will run is if I exclude
time series operators:

. sureg (LnRtFiveYrMid1 LnRtCDX LnRtCMT LnRtTED LnRtStock1)
(LnRtFiveYrMid2 LnRtCDX LnRtCMT
> LnRtTED LnRtStock2)

Seemingly unrelated regression
----------------------------------------------------------------------
Equation          Obs  Parms        RMSE    "R-sq"       chi2        P
----------------------------------------------------------------------
LnRtFiveY~d1      887      4    .0453147    0.1464     152.27   0.0000
LnRtFiveY~d2      887      4    .0479444    0.0777      74.68   0.0000
----------------------------------------------------------------------

------------------------------------------------------------------------------
| Coef. Std. Err. z P>|z| [95% Conf. Interval] ------------- +----------------------------------------------------------------
LnRtFiveY~d1 |
LnRtCDX | .5369359 .054891 9.78 0.000 . 4293515 .6445204 LnRtCMT | -.3181771 .0979303 -3.25 0.001 -.5101169 -.1262374 LnRtTED | -.0106727 .0188642 -0.57 0.572 -. 0476459 .0263005 LnRtStock1 | .0629164 .1021791 0.62 0.538 -. 1373509 .2631838 _cons | -.0006975 .0015239 -0.46 0.647 -. 0036843 .0022893 ------------- +----------------------------------------------------------------
LnRtFiveY~d2 |
LnRtCDX | .362548 .0568002 6.38 0.000 . 2512216 .4738745 LnRtCMT | -.3034092 .1032472 -2.94 0.003 -.5057699 -.1010485 LnRtTED | -.0484131 .019944 -2.43 0.015 -.0875027 -.0093235 LnRtStock2 | -.0617068 .0777801 -0.79 0.428 -. 214153 .0907394 _cons | -.0000496 .0016117 -0.03 0.975 -. 0032085 .0031093
------------------------------------------------------------------------------

Does sureg prevent the use of time series operators?  If so, am I best
to manually generate all the lags before reshaping or after?  Any
other suggestions?  Thanks.



The problem is that -tsset- (or -xtset-) remembers how your original long-format data were defined, in terms of CompanyNum and TradeDateNum. -sureg- is happy to accept timeseries operators, as - help sureg- indicates. But you must after using -reshape- reestablish the -tsset-, which will now be just

tsset TradeDateNum

as what you have now is a pure timeseries dataset. Then you should be able to give the -sureg- command.

As you have 57 equations to specify, I suggest you use a -local- and a -forvalues- loop over company numbers to build up the equation list.
For instance, as a simplified example,

local eqlist
forv i = 1/57 {
local eqlist "`eqlist' (LnRtFiveYrMid`i' LnRtCDX LnRtCMT LnRtTED LnRtStock`i')"
}

Just make sure you never use an equals sign in this local statement. You can then say

sureg `eqlist'

and go have a cup of coffee.


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


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