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:12MAY74
60  REM:Q1=7 FOR >AUTO;=8 FOR >SERC;=9 FOR >RUNS
100  DEF FNB()=INT(21.5+20*)
150  DIM R[563],A[21],B[21],C[21],D[21],E[21]
300  Z9=Q[8]
310  IF X[N9+2,Z9]#0 THEN 352
320  PRINT "STANDARD DEVIATION OF VARIABLE EQUALS ZERO;"
330  GOTO (Q1-6) OF 340,342,344
340  PRINT "AUTO CORR. ";
341  GOTO 345
342  PRINT "SERIAL CORR. ";
343  GOTO 345
344  PRINT "'RUNS' ";
345  PRINT "IS UNDEFINED."
350  GOTO 9998
352  GOTO (Q1-6) OF 355,355,500
355  GOTO Q9 OF 360,400,420
360  PRINT "* GIVE MAX. ORDER OF AUTO (OR SERIAL) CORR. WANTED : ";
370  ENTER 15,Q8,N6
375  PRINT 
380  IF Q8>0 THEN 470
390  PRINT "GIVE AN INTEGER VALUE BETWEEN 1 AND 20 FOR"
395  GOTO 420
400  PRINT "*MAX. ORDER WANTED = ";
410  GOTO 370
420  PRINT "* MAX ORDER : ";
430  GOTO 370
470  IF N6 >= 1 AND N6 <= 20 THEN 500
480  PRINT "ORDER GIVEN OUTSIDE ALLOWABLE RANGE."
490  GOTO 390
500  N7=0
510  FOR I=Q4 TO N
520  IF X[I,K9+2]=0 THEN 550
530  N7=N7+1
540  R[N7]=X[I,Z9]
550  NEXT I
560  IF Q1=9 THEN 2500
570  IF Q1=8 THEN 2000
580  N6=(N6+1) MIN 21
2000  N6=N6 MIN (N7-3)
2005  GOTO (Q1-6) OF 3000,2010,2500
2010  A[N6]=B[N6]=0
2020  FOR I=1 TO (N7-N6)
2030  A[N6]=A[N6]+R[I]
2040  B[N6]=B[N6]+R[N7-I+1]
2050  NEXT I
2060  FOR I=1 TO (N6-1)
2070  A[N6-I]=A[N6-I+1]+R[N7-N6+I]
2080  B[N6-I]=B[N6-I+1]+R[N6-I+1]
2090  NEXT I
2100  FOR I=1 TO N6
2110  A[I]=A[I]/(N7-I)
2120  B[I]=B[I]/(N7-I)
2130  NEXT I
2150  FOR I=1 TO N6
2160  C[I]=D[I]=E[I]=0
2170  FOR J=1 TO N7-I
2180  C[I]=C[I]+(R[J]-A[I])^2
2190  D[I]=D[I]+(R[I+J]-B[I])^2
2200  E[I]=E[I]+(R[J]-A[I])*(R[I+J]-B[I])
2210  NEXT J
2220  NEXT I
2230  PRINT 
2240  PRINT LIN(1),"ORDER  SER.CORR.",LIN(1)
2250  FOR I=1 TO N6
2260  PRINT  USING 2270;I,E[I]/SQR(C[I]*D[I])
2270  IMAGE 3D,5X,SD.3D
2280  NEXT I
2290  GOTO 9998
2500  I1=0
2510  IF R[1] <= X[N9+1,Z9] THEN 2530
2520  I1=1
2530  I6=1
2540  FOR I=2 TO N7
2550  IF R[I] <= X[N9+1,Z9] THEN 2590
2560  I1=I1+1
2570  I5=1
2580  GOTO 2600
2590  I5=-1
2600  IF SGN(R[I-1]-X[N9+1,Z9])=I5 THEN 2620
2610  I6=I6+1
2620  NEXT I
2630  I2=2*I1*(1-I1/N7)+1
2640  I3=I2-1
2650  I4=SQR(I3*(I3-1)/(N7-1))
2660  Z=(I6-I2)/I4
2690  PRINT 
2700  PRINT "   OBSERVED NUMBER OF RUNS=";I6
2710  PRINT "   EXPECTED NUMBER OF RUNS=";I2
2720  PRINT "STANDARD DEVIATION OF RUNS=";I4
2730  PRINT "    (OBS.-EXP.)/(STD.DEV.)=";Z
2740  PRINT 
2750  GOTO 9998
3000  FOR J=1 TO N6
3010  A[J]=0
3020  FOR I=1 TO N7-J+1
3030  A[J]=A[J]+(R[I]-X[N9+1,Z9])*(R[I+J-1]-X[N9+1,Z9])
3040  NEXT I
3050  NEXT J
3060  PRINT 
3070  PRINT LIN(1),"ORDER  AUTOCORR.";
3071  PRINT TAB(19);
3072  PRINT "-1  -.75 -.50 -.25   0   .25  .50  .75  +1"
3073  PRINT TAB(20);
3074  PRINT "'----'----'----'----'----'----'----'----'"
3075  T=0
3076  T1=N6-1
3080  FOR I=1 TO N6-1
3090  C0=A[I+1]/A[1]
3091  T=T+C0*C0
3092  PRINT  USING "#,3D5X";I
3093  PRINT  USING "#,SD.3D";C0
3094  PRINT TAB(19);"-";
3095  C0=FNB(C0)
3096  IF C0 >= 21 THEN 3100
3097  PRINT TAB(19+C0)"*";
3098  PRINT TAB(40)"'"
3099  GOTO 3105
3100  IF C0>21 THEN 3103
3101  PRINT TAB(40)"*"
3102  GOTO 3105
3103  PRINT TAB(40)"'";
3104  PRINT TAB(19+C0)"*"
3105  NEXT I
3107  PRINT 
3109  PRINT "S.E. OF EACH COEF. GIVEN RANDOM MODEL=";
3110  PRINT  USING "D.3D";SQR(1/N7)
3111  PRINT 
3113  T6=N7*T
3114  PRINT "BOX-PIERCE STATISTIC=";T6
3115  T2=(T6/T1)^.333333
3116  T3=1-2/(9*T1)
3117  T4=SQR(2/(9*T1))
3118  PRINT "EXPECTATION GIVEN RANDOM MODEL=";T1
3119  PRINT "        (OBS.-EXP.)/(STD.DEV.)=";(T2-T3)/T4
9998  CHAIN "$IDA",150
9999  END 
