10  COM X[103,22],M[19,19],U[19,19],Q[20],V[20],P[78]
30  COM M$[60],N$[72]
40  COM N,K,N8,K8,N9,K9,Q9,Q7,Q5,Q4,Q3,Q2,Q1
45  COM I3,I4,U9,X$[20]
50  REM:16OCT73
60  REM:Q1=1 FOR >SEPR;=5 FOR BCOR;=6 FOR BCOV
150  DIM B[20],C[20,20],T[20],W[20],A$[12]
160  DIM A[20]
200  IF Q[2]#0 THEN 500
210  PRINT "EXECUTE 'REGR' FIRST TO DEFINE REGRESSION EQUATION"
220  GOTO 9998
500  IF Q[4]=0 THEN 509
502  Q[5]=0
504  Q[6]=33
506  Q[7]=509
508  CHAIN "$IDA38"
509  B0=0
510  V0=U[K8+1,K8+1]*X[N9+2,V[K8+1]]^2/(N8-Q[20]-1)
520  D=0
530  FOR I=1 TO Q[20]
540  B[I]=U[I,K8+1]*X[N9+2,V[K8+1]]/X[N9+2,V[I]]
550  B0=B0+B[I]*X[N9+1,V[I]]
560  FOR J=1 TO Q[20]
570  C[I,J]=U[I,J]*V0/(X[N9+2,V[I]]*X[N9+2,V[J]])
580  D=D+U[I,J]*X[N9+1,V[I]]/X[N9+2,V[I]]*X[N9+1,V[J]]/X[N9+2,V[J]]
590  NEXT J
600  NEXT I
610  B[K8+1]=X[N9+1,V[K8+1]]-B0
620  C[K8+1,K8+1]=V0*(D+1-1/N8)
630  FOR I=1 TO Q[20]
640  C[I,K8+1]=0
650  FOR J=1 TO Q[20]
660  IF I=J THEN 690
670  C[I,K8+1]=C[I,K8+1]-X[N9+1,V[J]]*C[I,J]
680  GOTO 700
690  C[I,K8+1]=C[I,K8+1]-X[N9+1,V[I]]*C[I,I]
700  NEXT J
710  C[K8+1,I]=C[I,K8+1]
720  NEXT I
730  IF Q1>4 THEN 1500
800  GOTO Q9 OF 810,840,860
810  PRINT "WANT TO USE THE VALUES OF THE INDEPENDENT"
820  PRINT "VARIABLES GIVEN IN THE DATA MATRIX ";
830  GOTO 870
840  PRINT "USE VALUES OF INDEP. VAR. IN DATA MATRIX ";
850  GOTO 870
860  PRINT "USE DATA MATRIX ";
870  INPUT A$
880  GOTO Q9 OF 890,910,910
890  PRINT "NUMBER OF Y'S TO COMPUTE S.E. = ";
900  GOTO 920
910  PRINT "HOW MANY Y'S ";
920  INPUT N0
930  PRINT 
935  Q8=Q9-1
936  PRINT 
937  PRINT  USING 938
938  IMAGE "                Y         S.E.(FITTED)  S.E.PRED.(Y)"
939  PRINT 
940  FOR J=1 TO N0
950  IF A$[1,1]="N" THEN 1150
960  PRINT "ROW : ";
970  ENTER 240,I,I
972  IF I<0 THEN 960
975  S0=C[K8+1,K8+1]
980  Y0=B[K8+1]
990  FOR L=1 TO Q[20]
1000  Y0=Y0+B[L]*X[I,V[L]]
1010  T[L]=C[K8+1,L]
1020  FOR M=1 TO Q[20]
1030  T[L]=T[L]+X[I,V[M]]*C[M,L]
1040  NEXT M
1050  S0=S0+X[I,V[L]]*T[L]
1060  NEXT L
1080  FOR L=1 TO Q[20]
1090  S0=S0+X[I,V[L]]*C[K8+1,L]
1100  NEXT L
1110  PRINT  USING 1115;Y0,SQR(S0),SQR(S0+V0*(N8-1))
1115  IMAGE #,"            ",D.4DE,3XD.4DE,6XD.4DE
1120  PRINT 
1130  GOTO 1360
1140  Q8=Q8+1
1150  PRINT 
1155  GOTO Q9 OF 1200,1180,1160
1160  PRINT "X'S = ";
1170  GOTO 1210
1180  PRINT "VALUES OF INDEP. VAR. X'S = ";
1190  GOTO 1210
1200  PRINT "GIVE VALUES OF INDEP. VARS., SEPARATED BY COMMAS :"
1210  MAT  INPUT W[Q[20]]
1220  S0=C[K8+1,K8+1]
1230  Y0=B[K8+1]
1240  FOR L=1 TO Q[20]
1250  Y0=Y0+B[L]*W[L]
1260  T[L]=C[K8+1,L]
1270  FOR M=1 TO Q[20]
1280  T[L]=T[L]+W[M]*C[M,L]
1290  NEXT M
1300  S0=S0+W[L]*T[L]
1310  NEXT L
1320  FOR L=1 TO Q[20]
1330  S0=S0+W[L]*C[K8+1,L]
1340  NEXT L
1345  PRINT 
1350  PRINT  USING 1115;Y0,SQR(S0),SQR(S0+V0*(N8-1))
1355  PRINT 
1360  NEXT J
1370  GOTO 9998
1500  REM: BCOR AND BCOV
1512  N0=Q[20]
1513  FOR I=1 TO N0
1514  A[I]=V[I]
1515  NEXT I
1517  IF Q1=6 THEN 1620
1520  GOTO Q9 OF 1530,1560,1560
1530  PRINT "NUMBER OF DECIMAL PLACES"
1540  PRINT "WANTED IN THE PRINTOUT ";
1550  GOTO 1570
1560  PRINT "# DECIMALS = ";
1570  INPUT D
1580  IF (1<D) AND (D<6) THEN 1620
1590  PRINT "NUMBER OF DECIMAL PLACES ALLOWED"
1600  PRINT "IS BETWEEN 2 AND 5 INCLUSIVE"
1610  GOTO 1560
1620  PRINT 
1630  FOR I=1 TO N0
1640  IF Q3=1 THEN 1680
1650  PRINT  USING 1660;A[I]
1660  IMAGE #,"VAR.",DD,2X
1670  GOTO 1730
1680  IF A[I]>10 THEN 1720
1690  PRINT  USING 1700;M$[6*A[I]-5,6*A[I]]
1700  IMAGE #,6A,2X
1710  GOTO 1730
1720  PRINT  USING 1700;N$[6*(A[I]-10)-5,6*(A[I]-10)]
1730  FOR J=1 TO I
1735  IF Q1=6 THEN 1814
1740  GOTO D OF 1750,1750,1770,1790,1810
1750  PRINT  USING "#,DD.2D,2X";C[I,J]/SQR(C[I,I]*C[J,J])
1760  GOTO 1820
1770  PRINT  USING "#,DD.3D,2X";C[I,J]/SQR(C[I,I]*C[J,J])
1780  GOTO 1820
1790  PRINT  USING "#,DD.4D,2X";C[I,J]/SQR(C[I,I]*C[J,J])
1800  GOTO 1820
1810  PRINT  USING "#,DD.5D,2X";C[I,J]/SQR(C[I,I]*C[J,J])
1812  GOTO 1820
1814  PRINT  USING "#,D.5DE,2X";C[I,J]
1820  NEXT J
1830  PRINT 
1840  NEXT I
1850  A$[1,6]="CONST."
1860  PRINT  USING 1700;A$[1,6]
1880  FOR I=1 TO Q[20]
1890  IF Q1=6 THEN 2000
1900  GOTO D OF 1910,1910,1920,1940,1960
1910  PRINT  USING "#,DD.2D,2X";C[I,K8+1]/SQR(C[I,I]*C[K8+1,K8+1])
1915  GOTO 2020
1920  PRINT  USING "#,DD.3D,2X";C[I,K8+1]/SQR(C[I,I]*C[K8+1,K8+1])
1930  GOTO 2020
1940  PRINT  USING "#,DD.4D,2X";C[I,K8+1]/SQR(C[I,I]*C[K8+1,K8+1])
1950  GOTO 2020
1960  PRINT  USING "#,DD.5D,2X";C[I,K8+1]/SQR(C[I,I]*C[K8+1,K8+1])
1970  GOTO 2020
2000  PRINT  USING "#,D.5DE,2X";C[I,K8+1]
2020  NEXT I
2030  IF Q1#6 THEN 9998
2040  PRINT  USING "#,D.5DE";C[K8+1,K8+1]
9998  CHAIN "$IDA",150
9999  END 
