@ NLS ESTIMATION BY MINIMIZING RSS@ new; cls; rndseed(1234); // DGP begins n=100; x=rndu(n,1); eps=rndn(n,1); beta={2 2 2}; y=beta[1]+beta[2]*x^beta[3]+eps; // DGP ENDS // ESTIMATION //Starting values beta0={3, 3, 3}; {bnls,f,g,retcode} = QNewton(&ssr,beta0); // VarCov Matrix vbeta=vcov(bnls); //Standard Errors; sterr=sqrt(diag(vbeta)); //RESULTS format /rds 10,3; "Press a Key to see a Summary Table"; wait; cls; "Results by Minimizing SSR:"; "-------------------------"; "Coefficients Std Err";; bnls~sterr; "-------------------------"; //PROCEDURES // RSS for the Nonlinear model proc ssr(beta0); local e; e=y-beta0[1]-beta0[2]*x^beta0[3]; retp(e'e); endp; //Var Cov Matrix of the NLS estimator proc vcov(bnls); local sig2hat,xd,xd1,xd2,xd3,e,k; k=rows(bnls); e=y-bnls[1]-bnls[2]*x^bnls[3]; sig2hat=e'e/(n-k); //First derivatives xd1 = ones(n,1); xd2 = x^bnls[3]; xd3 = (bnls[2]*x^bnls[3]).*ln(x); xd=xd1~xd2~xd3; retp(sig2hat*inv(xd'xd)); endp;