open greene11_3.gdt # run initial OLS ols C 0 Y scalar essbak = $ess scalar essdiff = 1 scalar beta = $coeff(Y) scalar gamma = 1 # iterate OLS till the error sum of squares converges loop while essdiff > .00001 # form the linearized variables series C0 = C + gamma * beta * Y^gamma * log(Y) series x1 = Y^gamma series x2 = beta * Y^gamma * log(Y) # run OLS ols C0 0 x1 x2 --print-final --no-df-corr --vcv beta = $coeff[2] gamma = $coeff[3] ess = $ess essdiff = abs(ess - essbak)/essbak essbak = ess endloop # print parameter estimates using their "proper names" printf "alpha = %g\n", $coeff[1] printf "beta = %g\n", beta printf "gamma = %g\n", gamma