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