1# script to replicate Example 11.3 in Greene
2
3open greene11_3.gdt
4# run initial OLS
5ols C 0 Y
6scalar essbak = $ess
7scalar essdiff = 1
8scalar beta = $coeff(Y)
9scalar gamma = 1
10
11# iterate OLS till the error sum of squares converges
12loop while essdiff > .00001
13   # form the linearized variables
14   series C0 = C + gamma * beta * Y^gamma * log(Y)
15   series x1 = Y^gamma
16   series x2 = beta * Y^gamma * log(Y)
17   # run OLS
18   ols C0 0 x1 x2 --print-final --no-df-corr --vcv
19   beta = $coeff[2]
20   gamma = $coeff[3]
21   ess = $ess
22   essdiff = abs(ess - essbak)/essbak
23   essbak = ess
24endloop
25
26# print parameter estimates using their "proper names"
27printf "alpha = %g\n", $coeff[1]
28printf "beta  = %g\n", beta
29printf "gamma = %g\n", gamma
30