$ontext Linear Least Squares Regression NIST test data Erwin kalvelagen, dec 2004 Reference: http://www.itl.nist.gov/div898/strd/lls/lls.shtml Pontius, P., NIST. Load Cell Calibration. Model: Quadratic Class 3 Parameters (B0,B1,B2) y = B0 + B1*x + B2*(x**2) Certified Regression Statistics Standard Deviation Parameter Estimate of Estimate B0 0.673565789473684E-03 0.107938612033077E-03 B1 0.732059160401003E-06 0.157817399981659E-09 B2 -0.316081871345029E-14 0.486652849992036E-16 Residual Standard Deviation 0.205177424076185E-03 R-Squared 0.999999900178537 Certified Analysis of Variance Table Source of Degrees of Sums of Mean Variation Freedom Squares Squares F Statistic Regression 2 15.6040343244198 7.80201716220991 185330865.995752 Residual 37 0.155761768796992E-05 0.420977753505385E-07 $offtext set i 'cases' /i1*i40/; table data(i,*) y x i1 .11019 150000 i2 .21956 300000 i3 .32949 450000 i4 .43899 600000 i5 .54803 750000 i6 .65694 900000 i7 .76562 1050000 i8 .87487 1200000 i9 .98292 1350000 i10 1.09146 1500000 i11 1.20001 1650000 i12 1.30822 1800000 i13 1.41599 1950000 i14 1.52399 2100000 i15 1.63194 2250000 i16 1.73947 2400000 i17 1.84646 2550000 i18 1.95392 2700000 i19 2.06128 2850000 i20 2.16844 3000000 i21 .11052 150000 i22 .22018 300000 i23 .32939 450000 i24 .43886 600000 i25 .54798 750000 i26 .65739 900000 i27 .76596 1050000 i28 .87474 1200000 i29 .98300 1350000 i30 1.09150 1500000 i31 1.20004 1650000 i32 1.30818 1800000 i33 1.41613 1950000 i34 1.52408 2100000 i35 1.63159 2250000 i36 1.73965 2400000 i37 1.84696 2550000 i38 1.95445 2700000 i39 2.06177 2850000 i40 2.16829 3000000 ; variables b0 'constant term' b1 'linear term b1*x' b2 'quadratic term b2*x^2' sse 'sum of squared errors' ; equation fit(i) 'equation to fit' sumsq ; sumsq.. sse =n= 0; fit(i).. data(i,'y') =e= b0 + b1*data(i,'x') + b2*sqr(data(i,'x')); option lp = ls; model leastsq /fit,sumsq/; solve leastsq using lp minimizing sse; option decimals=8; display b0.l,b1.l; scalar B0cert / 0.673565789473684E-03 /; scalar B1cert / 0.732059160401003E-06 /; scalar B2cert / -0.316081871345029E-14 /; scalar err "Sum of squared errors in estimates"; err = sqr(b0.l-B0cert) + sqr(b1.l-B1cert) + sqr(b2.l-B2cert); display err; abort$(err>0.0001) "Solution not accurate";