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: 12JUN74
150  DIM A[20],C$[12],A$[12]
200  IF Q[2]#0 THEN 240
210  PRINT "ONE OF THESE COMMANDS MUST BE EXECUTED FIRST :"
220  PRINT "REGR  FORW  STEP"
230  GOTO 9998
240  IF Q[4]=0 THEN 250
242  Q[5]=0
244  Q[6]=34
246  Q[7]=250
248  CHAIN "$IDA38"
250  GOTO Q9 OF 260,280,300
260  PRINT "GIVE NAME OR COL. NO. OF VARIABLE TO BE SWEPT :";
270  GOTO 310
280  PRINT "VAR. TO BE SWEPT :";
290  GOTO 310
300  PRINT "VAR. : ";
310  ENTER 240,I,C$
315  PRINT 
320  GOSUB 7000
330  IF Z9#0 THEN 400
332  PRINT "VARIABLE GIVEN INVALID.  NEED HELP ";
334  INPUT C$
336  IF C$[1,1]#"Y" THEN 250
340  GOSUB 4000
350  GOTO 280
400  FOR I=1 TO K8
410  IF Z9=V[I] THEN 460
420  NEXT I
430  PRINT "VARIABLE NOT IN ORIGINAL REGRESSION EQUATION"
440  PRINT "SWEEP OPERATION NOT PERFORMED"
450  GOTO 9998
460  FOR J=1 TO Q[20]
470  IF Z9=V[J] THEN 800
480  NEXT J
490  FOR J=Q[20]+1 TO K8
492  IF Z9=V[J] THEN 500
494  NEXT J
500  REM: ADD INDEP. VAR. Z9
510  Q[20]=Q[20]+1
515  V[J]=V[Q[20]]
520  V[Q[20]]=Z9
525  GOSUB 530
526  GOTO 635
530  FOR I=1 TO K8+1
540  A[I]=U[I,J]
550  U[I,J]=U[I,Q[20]]
560  U[I,Q[20]]=A[I]
570  NEXT I
580  FOR I=1 TO K8+1
590  A[I]=U[J,I]
600  U[J,I]=U[Q[20],I]
610  U[Q[20],I]=A[I]
620  NEXT I
630  RETURN 
635  I=Q[20]
640  GOSUB 4500
650  K6=Q[20]
660  GOSUB 8000
670  PRINT "ANALYZING RESIDUALS ..."
680  CHAIN "$IDA31"
800  REM: DELETE INDEP. VAR. Z9
810  GOSUB 530
820  V[J]=V[Q[20]]
830  V[Q[20]]=Z9
840  Q[20]=Q[20]-1
845  I=Q[20]+1
850  GOTO 640
4000  IF Q3=1 THEN 4100
4010  PRINT LIN(1),"THE FIRST OBSERVATION OF EACH VARIABLE (FOR"
4020  PRINT  USING 4030;Q4
4030  IMAGE "REGRESSION) IS CONTAINED IN ROW",3D," OF THE "
4035  PRINT "DATA MATRIX.  FOR YOUR REFERENCE :"
4040  PRINT LIN(1),"COLUMN  1ST OBSERVATION"
4045  PRINT 
4050  FOR J=1 TO K
4060  PRINT  USING "2X,DD,6X,D.5DE";J,X[Q4,J]
4070  NEXT J
4080  GOTO 4185
4100  PRINT LIN(1),"THESE ARE THE VARIABLES IN THE DATA MATRIX :"
4110  PRINT "COLUMN   NAME"
4115  PRINT 
4120  FOR J=1 TO K
4130  IF J>10 THEN 4170
4140  PRINT  USING 4150;J,M$[6*J-5,6*J]
4150  IMAGE 2X,DD,4X,6A
4160  GOTO 4180
4170  PRINT  USING 4150;J,N$[6*(J-10)-5,6*(J-10)]
4180  NEXT J
4185  PRINT 
4190  RETURN 
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 
7000  FOR I=1 TO (10 MIN K)
7010  IF M$[6*I-5,6*I]=C$[1,6] THEN 7140
7020  NEXT I
7030  IF K <= 10 THEN 7070
7040  FOR I=1 TO (K-10)
7050  IF N$[6*I-5,6*I]=C$[1,6] THEN 7160
7060  NEXT I
7070  RESTORE 
7080  FOR I=1 TO K
7090  READ A$
7100  IF A$=C$ THEN 7140
7110  NEXT I
7112  IF C$#"FITTED" THEN 7115
7113  Z9=K9
7114  GOTO 7170
7115  IF C$#"RESIDU" THEN 7120
7116  Z9=K9+1
7117  GOTO 7170
7120  Z9=0
7130  GOTO 7170
7140  Z9=I
7150  GOTO 7170
7160  Z9=10+I
7170  RETURN 
7180  DATA "1","2","3","4","5","6","7","8","9","10","11","12"
7190  DATA "13","14","15","16","17","18","19","20","21"
8000  X[N9+1,K9]=X[N9+1,K9+1]=X[N9+2,K9]=X[N9+2,K9+1]=0
8005  FOR I=Q4 TO N
8010  IF X[I,K9+2]=0 THEN 8080
8020  X[I,K9]=0
8030  FOR J=1 TO K6
8040  X[I,K9]=X[I,K9]+U[J,K8+1]*(X[I,V[J]]-X[N9+1,V[J]])/X[N9+2,V[J]]
8050  NEXT J
8060  X[I,K9]=X[N9+1,V[K8+1]]+X[N9+2,V[K8+1]]*X[I,K9]
8070  X[I,K9+1]=X[I,V[K8+1]]-X[I,K9]
8072  X[N9+1,K9]=X[N9+1,K9]+X[I,K9]
8074  X[N9+2,K9+1]=X[N9+2,K9+1]+X[I,K9+1]^2
8080  NEXT I
8090  X[N9+1,K9]=X[N9+1,K9]/N8
8095  FOR I=Q4 TO N
8100  IF X[I,K9+2]=0 THEN 8120
8110  X[N9+2,K9]=X[N9+2,K9]+(X[I,K9]-X[N9+1,K9])^2
8120  NEXT I
8130  X[N9+2,K9]=SQR(X[N9+2,K9]/(N8-1))
8140  X[N9+2,K9+1]=SQR(X[N9+2,K9+1]/(N8-Q[20]-1))
8145  X[N9+3,K9]=X[N9+3,K9+1]=Q4-1
8150  RETURN 
9998  CHAIN "$IDA",150
9999  END 
