### Estimating risk premium with GMM

Posted:

**Mon Jun 03, 2019 4:29 am****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.

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.