Trailing-Edge
-
PDP-10 Archives
-
decuslib20-01
-
decus/20-0020/stat11.sta
There are 2 other files named stat11.sta in the archive. Click here to see a list.
100' NAME--STAT11
110'
120' DESCRIPTION--COMPUTES THE SPEARMAN RANK CORRELATION COEFFICIENT
130' FOR TWO SERIES OF DATA.
140'
150' SOURCE--UNKNOWN
160'
170' INSTRUCTIONS--PUT DATA IN LINE 900 AND FOLLOWING.
180' ENTER DATA IN THE FOLLOWING ORDER: FIRST THE COMMON LENGTH
190' OF EACH SERIES, THEN THE ELEMENTS OF THE SERIES BY GROUPS
200' THAT IS X1,Y1,X2,Y2,....ETC.
210' SAMPLE DATA IS IN LINE 900.
220'
230'
240' * * * * * * * MAIN PROGRAM * * * * * * * *
250'
260 DIM A(100), B(100)
270 READ N
280 FOR I = 1 TO N
290 READ A(I), B(I)
300 NEXT I
310 FOR I = 1 TO N - 1
320 LET X = A(1)
330 LET Y = B(1)
340 LET Q = 1
350 FOR J = 2 TO N - I + 1
360 IF X >= A(J) THEN 400
370 LET X = A(J)
380 LET Y = B(J)
390 LET Q = J
400 NEXT J
410 IF Q = J THEN 460
420 LET A(Q) = A(J)
430 LET A(J) = X
440 LET B(Q) = B(J)
450 LET B(J) = Y
460 NEXT I
470 REM NOW WE REPLACE THE ELEMENT BY ITS AVERAGE RANK
480 FOR I = 1 TO N
490 LET X = A(I)
500 FOR J = I + 1 TO N
510 IF X <> A(J) THEN 540
520 NEXT J
530 LET J = N + 1
540 LET Z = (J + I - 1)/2
550 FOR K = I TO J - 1
560 LET A(K) = Z
570 NEXT K
580 LET I = J - 1
590 NEXT I
600 IF P = 1 THEN 690
610 REM NOW WE INTERCHANGE A AND B AND SORT AGAIN.
620 FOR I = 1 TO N
630 LET T = A(I)
640 LET A(I) = B(I)
650 LET B(I) = T
660 NEXT I
670 LET P = 1
680 GO TO 310
690 REM NOW WE START COMPUTING THE CORRELATION COEFFICIENT.
700 FOR I = 1 TO N
710 LET S1 = S1 + A(I) * A(I)
720 LET S2 = S2 + B(I) * B(I)
730 LET S3 = S3 + A(I) * B(I)
740 NEXT I
750 LET S = N * N * (N+1) * (N+1) / 4
760 LET D1 = N * S1 - S
770 LET D2 = N * S2 - S
780 LET D = D1 * D2
790 IF D <> 0 THEN 820
800 LET R = 0
810 GO TO 830
820 LET R = (N * S3 - S)/SQR(D)
830 PRINT "SPEARMAN RANK CORRELATION COEFFICIENT"
840 PRINT " R = ";R
850 STOP
900 DATA 5, 480, 56, 500, 61, 520, 78, 540, 71, 56, 82
910END