clear use "I:\Documents and Settings\Documents\Stata\ces.dta" program nlces1 version 10 syntax varlist(min=3 max=3) [aw fw iw] if, at(name) local logout: word 1 of `varlist' local capital: word 2 of `varlist' local labor: word 3 of `varlist' // Retrieve parameters out of at matrix tempname b0 nu rho delta scalar `b0' = `at'[1,1] scalar `nu' = `at'[1,2] scalar `rho' = `at'[1,3] scalar `delta' = `at'[1,4] // Some temporary variables tempvar kterm lterm generate double `kterm' = `delta'*`capital'^(-1*`rho') `if' generate double `lterm' = (1-`delta')*`labor'^(-1*`rho') `if' // Now fill in dependent variable replace `logout' = `b0' - `nu'/`rho'*ln(`kterm'+`lterm') `if' end // to clear program use program drop nlces1 gen x4 = -.5*(ln(k/l))^2 reg ly lk ll x4 nlcom exp(_b[_cons]) nlcom _b[lk]/(_b[lk]+_b[ll]) nlcom (_b[lk]+_b[ll]) nlcom _b[x4]*(_b[lk]+_b[ll])/(_b[lk]*_b[ll]) scalar g1 = exp(_b[_cons]) scalar delta = _b[lk]/(_b[lk]+_b[ll]) scalar nu = (_b[lk]+_b[ll]) scalar rho = _b[x4]*(_b[lk]+_b[ll]) /(_b[lk]*_b[ll]) scalar list g1 delta nu rho nl ces1 @ ly k l, parameters(b0 nu rho delta) initial(rho -.3 nu .9 delta 0.05)