Page 1 of 1

Estimating risk premium with GMM

Posted: Mon Jun 03, 2019 4:29 am
by RDS
QUESTION: Can GMM in Eviews solve over-identified systems?
The estimation of risk premia as suggested by Cochrane (2000) - "Asset Pricing" on page 225 - requires to estimate an over-identified system of equations.


However, when trying to estimate a risk premium with GMM, I get a "Near singular matrix" error.
The system, which I try to estimate, has the following 6 equations and 5 parameters:

for %type g2
system SDF_all_{%type}
SDF_all_{%type}.append ( Y - c(1) - c(2)*W ) = 0 @ c
SDF_all_{%type}.append ( (Y - c(1) - c(2)*W)*W ) = 0 @ c

SDF_all_{%type}.append ( X - c(3) - c(4)*W ) = 0 @ c
SDF_all_{%type}.append ( (X - c(3) - c(4)*W)*W ) = 0 @ c

SDF_all_{%type}.append ( @mean(Y) - c(2)*c(5) ) = 0 @ c
SDF_all_{%type}.append ( @mean(X) - c(4)*c(5) ) = 0 @ c

param c(1) 0.9 c(2) 0.9 c(3) 0.9 c(4) 0.9 c(5) 0.9

'Sequential weighting matrix & coefficient iteration
'Cross section (White Cov) will result in GMM estimates robust to heteroskedasticity of unknown form
SDF_all_{%type}.gmm(instwgt=white,method=nstep,wtype=istdev,s)
next


The system instead works if dropping the last two equations. In this case, the system is just identified with 4 equations and 4 parameters:

for %type g2
system SDF_all_{%type}
SDF_all_{%type}.append ( Y - c(1) - c(2)*W ) = 0 @ c
SDF_all_{%type}.append ( (Y - c(1) - c(2)*W)*W ) = 0 @ c

SDF_all_{%type}.append ( X - c(3) - c(4)*W ) = 0 @ c
SDF_all_{%type}.append ( (X - c(3) - c(4)*W)*W ) = 0 @ c

param c(1) 0.9 c(2) 0.9 c(3) 0.9 c(4) 0.9

'Sequential weighting matrix & coefficient iteration
'Cross section (White Cov) will result in GMM estimates robust to heteroskedasticity of unknown form
SDF_all_{%type}.gmm(instwgt=white,method=nstep,wtype=istdev,s)
next

Obviously, I need to estimate the key c(5) parameter.