[Gretl-users] how to reproduce Verbeek's Table 5.4 (one-step GMM)?

Allin Cottrell cottrell at wfu.edu
Wed Nov 16 11:12:47 EST 2011


[I see that Jack Lucchetti has replied on this since I 
started writing, but I'll post it anyway; having two methods 
to look at might be useful.]

On Tue, 15 Nov 2011, Qi Shi wrote:

> I want to reproduce Verbeek's Table 5.4, below is my scripts:
>
> open pricing.gdt
> set force_hc on
>
> scalar delta=0.5
> scalar gamma=0.5
> series e0=delta*cons^(-gamma)*(1+rf)-1
> series e1=delta*cons^(-gamma)*(rf-r1)
> series e2=delta*cons^(-gamma)*(rf-r2)
> series e3=delta*cons^(-gamma)*(rf-r3)
> series e4=delta*cons^(-gamma)*(rf-r4)
> series e5=delta*cons^(-gamma)*(rf-r5)
> series e6=delta*cons^(-gamma)*(rf-r6)
> series e7=delta*cons^(-gamma)*(rf-r7)
> series e8=delta*cons^(-gamma)*(rf-r8)
> series e9=delta*cons^(-gamma)*(rf-r9)
> series e10=delta*cons^(-gamma)*(rf-r10)
> list xlist=e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10
>
> matrix V0=I(11)
>
> gmm list e=xlist
>    orthog e; const
>    weights V0
>    params delta gamma
> end gmm

There are two problems here, one with gretl and one with your 
script.

The gretl problem: although the manual states that you can use 
a list of series as the left-hand term in a GMM orthogonality 
condition, apparently that was never hooked up properly. This 
is now fixed in CVS.

The problem with your script is that you never use delta and 
gamma to recompute your series e0 to e10 -- so gretl will find 
a gradient of zero and give you back your initial values for 
the parameters.

Here's a script that replicates the Verbeek table. I've chosen 
to organize the data into matrices rather than using the list 
approach.

<hansl>
open pricing.gdt
set force_hc on

matrix R = zeros($nobs, 11)
R[,1] = 1 + rf
loop j=1..10 --quiet
   R[,j+1] = rf - r$j
endloop

scalar delta=0.5
scalar gamma=0.5

matrix E = {delta * cons^(-gamma)} .* R
matrix V0 = I(11)

gmm
     E = {delta * cons^(-gamma)} .* R
     E[,1] -= 1
     orthog E ; const
     weights V0
     params delta gamma
end gmm

gmm
     E = {delta * cons^(-gamma)} .* R
     E[,1] -= 1
     orthog E ; const
     weights V0
     params delta gamma
end gmm --iterate
</hansl>

Allin Cottrell






More information about the Gretl-users mailing list