Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Two-Stage Least Squares with cross-section weights and adjusted-R2

    Hi!
    I am currently analysing daily yield spreads of the euro-area countries over a 10-year period. I have an unbalanced panel data (N=10 and T=3.717) characterized by heteroscedasticity, serial correlation, cross-sectional correlation, and endogeneity.

    Yield spreads are the dependent variable (yield).

    As regressors I use the lagged yield spread (l.yield) (endogenous variable) and other three exogenous variables bid_askspread cds_spread swap_spread. The model also includes country-specific fixed effect.

    In order to estimate the model, I use Two-Stage Least Squares (2SLS) and I use as Instrumental Variables the second and the third lag of the dependent variable: l(2/3).yield, and the first three lags of all independent variables: l(1/3).bid_askspread l(1/3).cds_spread l(1/3).swap_spread.

    The code that I run in Stata is the following:

    Code:
    xtivreg yield bid_askspread cds_spread swap_spread (l.yield=l(2/3).yield l(1/3).bid_askspread l(1/3).cds_spread l(1/3).swap_spread ), fe vce (cluster country)
    R2 obtained:
    Within: 0.9984
    Between: 1.0000
    Overall: 0.9989

    Some academic papers show the adjusted-R2, but Stata does give this information after running xtivreg. Is there another Stata command that gives this result?
    Should R2 be lower? Do these high values of R2 mean that there is something wrong in the model implemented?
    I have to run 2SLS with cross-section weights in order to account for cross-sectional heteroscedasticity, therefore I tried to generate the optimal weighting matrix that is proportional to the inverse of the covariance matrix of the sample moments, meaning that sample moments with a small variance get more weights than those with larger variance, but I have not found a command that enables to get this matrix.
    Using FGLS and excluding the lagged yield spread I get FGLS with cross-section weights using this code:

    Code:
    xtreg yield bid_askspread cds_spread swap_spread, fe vce(cluster c)
    predict e
    gen logesq = ln(e*e)
    reg logesq bid_askspread cds_spread swap_spread
    predict esqhat, xb
    gen omega = exp(esqhat)
    gen w = (1/omega)^0.5
    gen wyield=w* yield
    gen wbidask=w* bid_askspread
    gen wcds=w* cds_spread
    gen wswap=w* swap_spread
    xtreg wyield wbidask wcds wswap w, fe  vce(cluster c)
    Is there anything similar to this code that I have to use with the xtivreg command?

    Thank you in advance for any clarification

  • #2
    Hello Daniela, did you know how to do it now? I have the same problem...

    Comment


    • #3
      You might want to try to start from scratch, and describe what you are doing and what your problem is, probably best on your own dedicated thread.


      Originally posted by Beatriz Sousa View Post
      Hello Daniela, did you know how to do it now? I have the same problem...

      Comment

      Working...
      X