$ontext Longley Linear Least Squares benchmark problem Solve as nonlinear regression problem Erwin Kalvelagen, nov 2004 References: http://www.itl.nist.gov/div898/strd/lls/lls.shtml Longley, J. W. (1967). An Appraisal of Least Squares Programs for the Electronic Computer from the Viewpoint of the User. Journal of the American Statistical Association, 62, pp. 819-841. Certified Regression Statistics Standard Deviation Parameter Estimate of Estimate B0 -3482258.63459582 890420.383607373 B1 15.0618722713733 84.9149257747669 B2 -0.358191792925910E-01 0.334910077722432E-01 B3 -2.02022980381683 0.488399681651699 B4 -1.03322686717359 0.214274163161675 B5 -0.511041056535807E-01 0.226073200069370 B6 1829.15146461355 455.478499142212 Residual Standard Deviation 304.854073561965 R-Squared 0.995479004577296 Certified Analysis of Variance Table Source of Degrees of Sums of Mean Variation Freedom Squares Squares F Statistic Regression 6 184172401.944494 30695400.3240823 330.285339234588 Residual 9 836424.055505915 92936.0061673238 Chazam output: ------------- Hello/Bonjour/Aloha/Howdy/G Day/Kia Ora/Konnichiwa/Buenos Dias/Nee Hau/Ciao Welcome to SHAZAM - Version 10.0 - JUL 2004 SYSTEM=LINUX PAR= 781 |_SAMPLE 1 16 |_READ Y X1 X2 X3 X4 X5 X6 7 VARIABLES AND 16 OBSERVATIONS STARTING AT OBS 1 |_OLS Y X1 X2 X3 X4 X5 X6 REQUIRED MEMORY IS PAR= 3 CURRENT PAR= 781 OLS ESTIMATION 16 OBSERVATIONS DEPENDENT VARIABLE= Y ...NOTE..SAMPLE RANGE SET TO: 1, 16 R-SQUARE = 0.9955 R-SQUARE ADJUSTED = 0.9925 VARIANCE OF THE ESTIMATE-SIGMA**2 = 92936. STANDARD ERROR OF THE ESTIMATE-SIGMA = 304.85 SUM OF SQUARED ERRORS-SSE= 0.83642E+06 MEAN OF DEPENDENT VARIABLE = 65317. LOG OF THE LIKELIHOOD FUNCTION = -109.617 MODEL SELECTION TESTS - SEE JUDGE ET AL. (1985,P.242) AKAIKE (1969) FINAL PREDICTION ERROR - FPE = 0.13360E+06 (FPE IS ALSO KNOWN AS AMEMIYA PREDICTION CRITERION - PC) AKAIKE (1973) INFORMATION CRITERION - LOG AIC = 11.739 SCHWARZ (1978) CRITERION - LOG SC = 12.077 MODEL SELECTION TESTS - SEE RAMANATHAN (1998,P.165) CRAVEN-WAHBA (1979) GENERALIZED CROSS VALIDATION - GCV = 0.16522E+06 HANNAN AND QUINN (1979) CRITERION = 0.12759E+06 RICE (1984) CRITERION = 0.41821E+06 SHIBATA (1981) CRITERION = 98018. SCHWARZ (1978) CRITERION - SC = 0.17584E+06 AKAIKE (1974) INFORMATION CRITERION - AIC = 0.12540E+06 ANALYSIS OF VARIANCE - FROM MEAN SS DF MS F REGRESSION 0.18417E+09 6. 0.30695E+08 330.285 ERROR 0.83642E+06 9. 92936. P-VALUE TOTAL 0.18501E+09 15. 0.12334E+08 0.000 ANALYSIS OF VARIANCE - FROM ZERO SS DF MS F REGRESSION 0.68445E+11 7. 0.97779E+10 105210.860 ERROR 0.83642E+06 9. 92936. P-VALUE TOTAL 0.68446E+11 16. 0.42779E+10 0.000 VARIABLE ESTIMATED STANDARD T-RATIO PARTIAL STANDARDIZED ELASTICITY NAME COEFFICIENT ERROR 9 DF P-VALUE CORR. COEFFICIENT AT MEANS X1 15.062 84.91 0.1774 0.863 0.059 0.0463 0.0234 X2 -0.35819E-01 0.3349E-01 -1.070 0.313-0.336 -1.0137 -0.2126 X3 -2.0202 0.4884 -4.136 0.003-0.810 -0.5375 -0.0988 X4 -1.0332 0.2143 -4.822 0.001-0.849 -0.2047 -0.0412 X5 -0.51104E-01 0.2261 -0.2261 0.826-0.075 -0.1012 -0.0919 X6 1829.2 455.5 4.016 0.003 0.801 2.4797 54.7342 CONSTANT -0.34823E+07 0.8904E+06 -3.911 0.004-0.793 0.0000 -53.3132 |_STOP $offtext set i 'cases' /i1*i16/; set v 'variables' /empl,const,gnpdefl,gnp,unempl,army,pop,year/; set indep(v) 'independent variables' /const,gnpdefl,gnp,unempl,army,pop,year/; set depen(v) 'dependent variables' /empl/; table data(i,v) empl gnpdefl gnp unempl army pop year i1 60323 83.0 234289 2356 1590 107608 1947 i2 61122 88.5 259426 2325 1456 108632 1948 i3 60171 88.2 258054 3682 1616 109773 1949 i4 61187 89.5 284599 3351 1650 110929 1950 i5 63221 96.2 328975 2099 3099 112075 1951 i6 63639 98.1 346999 1932 3594 113270 1952 i7 64989 99.0 365385 1870 3547 115094 1953 i8 63761 100.0 363112 3578 3350 116219 1954 i9 66019 101.2 397469 2904 3048 117388 1955 i10 67857 104.6 419180 2822 2857 118734 1956 i11 68169 108.4 442769 2936 2798 120445 1957 i12 66513 110.8 444546 4681 2637 121950 1958 i13 68655 112.6 482704 3813 2552 123366 1959 i14 69564 114.2 502601 3931 2514 125368 1960 i15 69331 115.7 518173 4806 2572 127852 1961 i16 70551 116.9 554894 4007 2827 130081 1962 ; data(i,'const') = 1; alias(indep,j,jj,k); table cert(*,*) 'certified values' value stderr const -3482258.63459582 890420.383607373 gnpdefl 15.0618722713733 84.9149257747669 gnp -0.358191792925910E-01 0.334910077722432E-01 unempl -2.02022980381683 0.488399681651699 army -1.03322686717359 0.214274163161675 pop -0.511041056535807E-01 0.226073200069370 year 1829.15146461355 455.478499142212 ; variables b(indep) 'parameters to be estimated' sse ; equation fit(i) 'equation to fit' sumsq ; * * starting point * b.l(indep) = 1; sumsq.. sse =n= 0; fit(i).. data(i,'empl') =e= sum(indep, b(indep)*data(i,indep)); option nlp = nls; model leastsq /fit,sumsq/; solve leastsq using nlp minimizing sse; option decimals=8; display b.l; scalar err1 "Sum of squared errors in estimates"; err1 = sum(indep, sqr(b.l(indep)-cert(indep,'value'))); display err1; abort$(err1>0.0001) "Solution not accurate"; scalar err2 "Sum of squared errors in standard errors"; err2 = sum(indep, sqr(b.m(indep)-cert(indep,'stderr'))); display err2; abort$(err2>0.0001) "Standard errors not accurate";