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:17SEP73
150  DIM C[20],S[20],C$[12],Z[450]
200  IF Q[2]#0 THEN 250
210  PRINT "REGRESSION EQUATION NOT YET DEFINED"
220  PRINT "EXECUTE ONE OF THESE COMMANDS FIRST :"
230  PRINT "REGR  FORW  STEP"
240  GOTO 9998
250  IF Q[3]=0 THEN 300
260  Q[5]=1
270  Q[6]=37
280  Q[7]=300
290  CHAIN "$IDA38"
300  FOR I=Q4 TO N
301  Z[I]=X[I,K9+2]
302  NEXT I
305  FOR I=Q4 TO N
310  IF X[I,K9+2]=0 THEN 400
320  NEXT I
330  GOTO 500
400  PRINT "WARNING:  DELETED OBSERVATION IN DATA MATRIX MAY BE"
410  PRINT "SELECTED IN SAMPLE.  DO YOU WISH TO PROCEED ";
420  INPUT C$
430  IF C$[1,1]="N" THEN 9998
500  PRINT "NO. OF SUBSAMPLES WANTED = ";
510  INPUT N1
511  PRINT LIN(1)
512  N0=0
513  PRINT  USING 514
514  IMAGE #," S   N "
515  FOR I=1 TO K8
516  IF I=1 THEN 518
517  IF (I-1)/4=INT((I-1)/4) THEN 521
518  PRINT  USING 519;V[I]
519  IMAGE #,"   B(",DD,")  "
520  GOTO 525
521  PRINT 
522  PRINT  USING 523
523  IMAGE #,"       "
524  GOTO 518
525  NEXT I
526  PRINT  USING 519;0
527  PRINT  USING 528
528  IMAGE #,"   S.E.      R"
529  PRINT LIN(1)
530  FOR L0=1 TO N1
535  N8=0
540  FOR I=Q4 TO N
550  I1=RND(0)
560  IF I1<.5 THEN 600
570  X[I,K9+2]=1
580  N8=N8+1
590  GOTO 610
600  X[I,K9+2]=0
610  NEXT I
620  IF N8-K8>3 THEN 700
630  N0=N0+1
640  IF N0<200 THEN 535
650  PRINT "TOO FEW OBSERVATIONS FOR SAMPLING"
660  PRINT "EXECUTION OF SAMP DISCONTINUED"
670  GOTO 9998
700  FOR J=1 TO K8+1
710  C[J]=0
720  FOR I=Q4 TO N
730  IF X[I,K9+2]=0 THEN 750
740  C[J]=C[J]+X[I,V[J]]
750  NEXT I
760  C[J]=C[J]/N8
770  NEXT J
772  PRINT "(ROWS =";
780  FOR I1=Q4 TO N
782  IF X[I1,K9+2]=0 THEN 790
784  PRINT  USING 786;I1
786  IMAGE #,DD,X
790  NEXT I1
792  PRINT ")"
800  FOR I1=1 TO K8+1
810  FOR J1=1 TO I1
820  U[I1,J1]=0
830  FOR K1=Q4 TO N
840  IF X[K1,K9+2]=0 THEN 860
850  U[I1,J1]=U[I1,J1]+(X[K1,V[I1]]-C[I1])*(X[K1,V[J1]]-C[J1])
860  NEXT K1
870  U[J1,I1]=U[I1,J1]
880  NEXT J1
885  S[I1]=U[I1,I1]
890  NEXT I1
892  FOR I1=1 TO K8+1
893  FOR J1=1 TO I1
894  U[I1,J1]=U[I1,J1]/SQR(S[I1]*S[J1])
895  U[J1,I1]=U[I1,J1]
896  NEXT J1
897  NEXT I1
900  FOR I=1 TO K8
910  GOSUB 4500
920  NEXT I
1000  PRINT  USING "#,DD,2X,DD,2X";L0,N8
1010  B0=0
1020  FOR I=1 TO K8
1030  I1=U[I,K8+1]*SQR(S[K8+1]/S[I])
1040  B0=B0+I1*C[I]
1045  IF I=1 THEN 1050
1046  IF (I-1)/4=INT((I-1)/4) THEN 1057
1050  PRINT  USING 1055;I1
1055  IMAGE #,D.3DE,X
1056  GOTO 1065
1057  PRINT 
1058  PRINT  USING 1059
1059  IMAGE #,"        "
1060  GOTO 1050
1065  NEXT I
1070  B0=C[K8+1]-B0
1080  PRINT  USING 1055;B0
1090  R2=U[K8+1,K8+1]*S[K8+1]
1100  R0=SQR(1-R2/S[K8+1])
1110  PRINT  USING 1120;SQR(R2/(N8-K8-1))
1120  IMAGE #,D.3DE,X
1130  PRINT  USING 1140;R0
1140  IMAGE #,D.2D
1150  PRINT LIN(1)
1200  NEXT L0
1250  FOR I=Q4 TO N
1260  X[I,K9+2]=Z[I]
1270  NEXT I
1280  Q[4]=1
1284  PRINT LIN(2)
1285  PRINT "DATA MATRIX BEFORE 'SAMP' RECOVERED."
1290  GOTO 9998
4500  C=1/U[I,I]
4510  U[I,I]=C
4520  FOR I1=1 TO K8+1
4530  IF I1=I THEN 4580
4540  FOR J1=1 TO K8+1
4550  IF J1=I THEN 4570
4560  U[I1,J1]=U[I1,J1]-C*U[I1,I]*U[I,J1]
4570  NEXT J1
4580  NEXT I1
4590  FOR I1=1 TO K8+1
4600  IF I1=I THEN 4630
4610  U[I,I1]=U[I,I1]*C
4620  U[I1,I]=-U[I1,I]*C
4630  NEXT I1
4640  RETURN 
9998  CHAIN "$IDA",150
9999  END 
