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:13MAY74
60  REM:UPDATING $IDA'S OF LINES 5024-5040
150  DIM R[450],A[12]
490  PRINT "UPDATING ";
500  IF Q[3]=0 THEN 550
510  GOSUB 1010
520  Q[3]=0
550  IF Q[5]=1 THEN 4000
560  GOTO 2000
1010  PRINT "CORR. MATRIX...";
1020  GOSUB 1200
1030  FOR I=1 TO K
1040  FOR J0=1 TO I
1050  IF I=J0 THEN 1160
1060  M[I,J0]=0
1070  FOR J1=Q4 TO N
1080  IF X[J1,K9+2]=0 THEN 1120
1090  A=(X[J1,I]-X[N9+1,I])/X[N9+2,I]
1100  B=(X[J1,J0]-X[N9+1,J0])/X[N9+2,J0]
1110  M[I,J0]=M[I,J0]+A*B
1120  NEXT J1
1130  M[I,J0]=M[I,J0]/(N0-1)
1140  M[J0,I]=M[I,J0]
1150  GOTO 1170
1160  M[I,J0]=1
1170  NEXT J0
1180  NEXT I
1190  RETURN 
1200  REM: NO. OBS. IN COL.
1210  N0=0
1220  FOR J0=Q4 TO N
1230  N0=N0+X[J0,K9+2]
1240  NEXT J0
1250  RETURN 
2000  IF Q[4]=0 THEN 4000
2005  PRINT ",REGRESSION...";
2010  N8=0
2020  FOR I=Q4 TO N
2030  N8=N8+X[I,K9+2]
2040  NEXT I
2050  FOR I=1 TO K8
2060  FOR J=1 TO K8
2070  U[I,J]=M[V[I],V[J]]
2080  NEXT J
2090  NEXT I
2100  FOR I=1 TO K8
2110  U[I,K8+1]=M[V[I],V[K8+1]]
2120  U[K8+1,I]=U[I,K8+1]
2130  NEXT I
2140  U[K8+1,K8+1]=1
2150  K6=K8
2160  FOR I=1 TO K6
2170  GOSUB 2230
2180  NEXT I
2190  Q[2]=1
2200  Q[20]=K8
2210  GOSUB 2380
2212  Q[4]=0
2215  PRINT 
2220  PRINT "ANALYZING RESIDUALS...";
2225  GOTO 3010
2230  C=1/U[I,I]
2240  U[I,I]=C
2250  FOR I1=1 TO K8+1
2260  IF I1=I THEN 2310
2270  FOR J1=1 TO K8+1
2280  IF J1=I THEN 2300
2290  U[I1,J1]=U[I1,J1]-C*U[I1,I]*U[I,J1]
2300  NEXT J1
2310  NEXT I1
2320  FOR I1=1 TO K8+1
2330  IF I1=I THEN 2360
2340  U[I,I1]=U[I,I1]*C
2350  U[I1,I]=-U[I1,I]*C
2360  NEXT I1
2370  RETURN 
2380  X[N9+1,K9]=X[N9+1,K9+1]=X[N9+2,K9]=X[N9+2,K9+1]=0
2390  FOR I=Q4 TO N
2400  IF X[I,K9+2]=0 THEN 2490
2410  X[I,K9]=0
2420  FOR J=1 TO K6
2430  X[I,K9]=X[I,K9]+U[J,K8+1]*(X[I,V[J]]-X[N9+1,V[J]])/X[N9+2,V[J]]
2440  NEXT J
2450  X[I,K9]=X[N9+1,V[K8+1]]+X[N9+2,V[K8+1]]*X[I,K9]
2460  X[I,K9+1]=X[I,V[K8+1]]-X[I,K9]
2470  X[N9+1,K9]=X[N9+1,K9]+X[I,K9]
2480  X[N9+2,K9+1]=X[N9+2,K9+1]+X[I,K9+1]^2
2490  NEXT I
2500  X[N9+1,K9]=X[N9+1,K9]/N8
2510  FOR I=Q4 TO N
2520  IF X[I,K9+2]=0 THEN 2540
2530  X[N9+2,K9]=X[N9+2,K9]+(X[I,K9]-X[N9+1,K9])^2
2540  NEXT I
2550  X[N9+2,K9]=SQR(X[N9+2,K9]/(N8-1))
2560  X[N9+2,K9+1]=SQR(X[N9+2,K9+1]/(N8-K8-1))
2562  X[N9+3,K9]=X[N9+3,K9+1]=Q4-1
2570  RETURN 
3000  REM: ANALYZE RESIDUALS
3010  N7=0
3020  FOR I=Q4 TO N
3030  IF X[I,K9+2]=0 THEN 3060
3040  N7=N7+1
3050  R[N7]=X[I,K9+1]
3060  NEXT I
3080  T1=T2=T3=0
3090  FOR I=1 TO N7
3100  D1=R[I]/X[N9+2,K9+1]
3110  IF ABS(D1)<2.576 THEN 3230
3120  N3=0
3130  FOR J=Q4 TO N
3140  IF X[J,K9+2]=0 THEN 3170
3150  N3=N3+1
3160  IF N3=I THEN 3180
3170  NEXT J
3180  PRINT 
3182  PRINT  USING 3190;J,D1
3190  IMAGE "WARNING: RESIDUAL IN ROW ",3D," IS ",SD.DD," S.D. UNITS FROM 0"
3230  NEXT I
3240  I1=0
3250  IF R[1] <= 0 THEN 3270
3260  I1=1
3270  I6=1
3280  FOR I=2 TO N7
3290  IF R[I] <= 0 THEN 3330
3300  I1=I1+1
3310  I5=1
3320  GOTO 3340
3330  I5=-1
3340  IF SGN(R[I-1])=I5 THEN 3360
3350  I6=I6+1
3360  NEXT I
3370  I2=2*I1*(1-I1/N7)+1
3380  I3=I2-1
3390  I4=SQR(I3*(I3-1)/(N7-1))
3400  Z=(I6-I2)/I4
3410  IF ABS(Z)<2.576 THEN 3490
3415  PRINT 
3420  PRINT "WARNING: RESIDUALS MAY BE EXCESSIVELY CORRELATED :"
3430  PRINT 
3440  PRINT "   OBSERVED NUMBER OF RUNS=";I6
3450  PRINT "   EXPECTED NUMBER OF RUNS=";I2
3460  PRINT "STANDARD DEVIATION OF RUNS=";I4
3470  PRINT "    (OBS.-EXP.)/(STD.DEV.)=";Z
3480  PRINT 
3490  PRINT "CHECKING AUTO CORRELATIONS...";
3492  N6=12 MIN (N7/4)
3500  FOR J=1 TO N6
3510  A[J]=0
3520  FOR I=1 TO N7-J+1
3530  A[J]=A[J]+R[I]*R[I+J-1]
3540  NEXT I
3550  NEXT J
3560  FOR I=1 TO N6-1
3570  C0=A[I+1]/A[1]
3580  IF ABS(C0)<2/SQR(N7) THEN 3610
3585  PRINT 
3590  PRINT  USING 3600;I,C0
3600  IMAGE "WARNING: AUTO(",DD,") =",XSD.DD
3610  NEXT I
4000  Z=Q[7]
4001  PRINT 
4002  IF Q[6]=25 THEN 9025
4005  IF Q[6]=24 THEN 9024
4010  IF Q[6]=28 THEN 9028
4020  IF Q[6]=29 THEN 9029
4030  IF Q[6]=30 THEN 9030
4032  IF Q[6]=39 THEN 9039
4035  IF Q[6]=903 THEN 9903
4040  GOTO (Q[6]-30) OF 9031,9998,9033,9034,9035,9036,9037
4050  GOTO 9998
9024  CHAIN "$IDA24",Z
9025  CHAIN "$IDA25",Z
9028  CHAIN "$IDA28",Z
9029  CHAIN "$IDA29",Z
9030  CHAIN "$IDA30",Z
9031  CHAIN "$IDA31",Z
9033  CHAIN "$IDA33",Z
9034  CHAIN "$IDA34",Z
9035  CHAIN "$IDA35",Z
9036  CHAIN "$IDA36",Z
9037  CHAIN "$IDA37",Z
9039  CHAIN "$IDA39",Z
9903  CHAIN "$IDA903",Z
9998  CHAIN "$IDA",150
9999  END 
