$TITLE: M5-1.GMS, ordinary least squares using NLP $ONTEXT there are I observations on two variables (set J), a dependent variables Y and an independent variable X. the objective is to estimate a linear relationship vias OLS minimizing the sum of squared deviations $OFFTEXT SETS I observations /I1*I4/ J dep and ind var /J1*J2/; PARAMETERS Y0(I) X0(I); TABLE BENCH(I,J) J1 J2 I1 4 2 I2 3 4 I3 10 6 I4 14 11; DISPLAY BENCH; Y0(I) = BENCH(I, "J1"); X0(I) = BENCH(I, "J2"); DISPLAY Y0, X0; VARIABLES ALPHA BETA DEV YHAT(I); EQUATIONS EYHAT(I) OBJECTIVE; OBJECTIVE.. DEV =E= SUM(I, (YHAT(I) - Y0(I))*(YHAT(I) - Y0(I))); *OBJECTIVE.. DEV =E= SUM(I, POWER(YHAT(I) - Y0(I), 2)); EYHAT(I).. YHAT(I) =E= ALPHA + BETA*X0(I); MODEL OLS /ALL/; ALPHA.L = 1; BETA.L = 1; YHAT.L(I) = 15; SOLVE OLS USING NLP MINIMIZING DEV; * process output to get observed and fitted values of Y PARAMETER RESULTS(I,*); RESULTS(I, "X0") = X0(I); RESULTS(I, "YHAT") = YHAT.L(I); RESULTS(I, "Y0") = Y0(I); DISPLAY RESULTS; $LIBINCLUDE XLDUMP RESULTS M5.XLS SHEET1!B3 $ONTEXT issue: taking powers of negative numbers WORKS: OBJECTIVE.. DEV =E= SUM(I, (YHAT(I) - Y0(I))*(YHAT(I) - Y0(I))); OBJECTIVE.. DEV =E= SUM(I, POWER(YHAT(I) - Y0(I), 2)); DON'T WORK: OBJECTIVE.. DEV =E= SUM(I, (YHAT(I) - Y0(I))**2); OBJECTIVE.. DEV =E= SUM(I, RPOWER(YHAT(I) - Y0(I), 2)); X**Y is calculated as EXP(Y*LOG(X)) requiring X ge 0. $OFFTEXT