10 COM N1,N2,N3 20 REM *****MDRS VERSION 2, AUGUST 26, 1971 30 REM *****TRANSLATED FROM 'FORTRAN PROGRAMMING FOR THE BEHAVIORAL 40 REM *****SCIENCES' BY D.J. VELDMAN 50 PRINT "HOW MANY SUBJECTS ARE THERE"; 60 INPUT N1 70 PRINT "HOW MANY VARIABLES ARE THERE"; 80 INPUT N2 90 PRINT "MAXIMUM NUMBER OF FACTORS"; 100 INPUT N3 110 FILES CORR,CORR1,S 120 REM DECLARE FILE IN THIS LINE 130 DIM X[64],R[64],A[64],S[64] 140 PRINT "MISSING DATA CODED WITH WHAT NUMBER (EG. 999)"; 150 INPUT M 160 REM ZER COR, A &S 170 MAT R=ZER 180 FOR I=1 TO N2 190 FOR J=1 TO 3 200 READ #J,I*2-1 210 MAT PRINT #J;R 220 NEXT J 230 NEXT I 240 FOR N=1 TO N1 250 F5=INT((N*2-1)/128)+4 260 I5=N-64*(F5-4) 270 READ #F5,I5*2-1 280 MAT READ #F5;X[N2] 290 FOR I=1 TO N2 300 IF X[I]=M THEN 800 310 READ #1,I*2-1 320 MAT READ #1;R[N2] 330 R[I]=R[I]+1 340 READ #1,I*2-1 350 MAT PRINT #1;R 360 READ #2,I*2-1 370 MAT READ #2;A[N2] 380 A[I]=A[I]+X[I] 390 READ #2,I*2-1 400 MAT PRINT #2;A 410 READ #3,I*2-1 420 MAT READ #3;S[N2] 430 S[I]=S[I]+X[I]^2 440 READ #3,I*2-1 450 MAT PRINT #3;S 460 FOR J=I TO N2 470 IF I=J THEN 790 480 IF X[J]=M THEN 790 490 READ #1,I*2-1 500 MAT READ #1;R[N2] 510 R[J]=R[J]+X[I]*X[J] 520 READ #1,I*2-1 530 MAT PRINT #1;R 540 READ #1,J*2-1 550 MAT READ #1;R[N2] 560 R[I]=R[I]+1 570 READ #1,J*2-1 580 MAT PRINT #1;R 590 READ #2,I*2-1 600 MAT READ #2;A[N2] 610 A[J]=A[J]+X[I] 620 READ #2,I*2-1 630 MAT PRINT #2;A 640 READ #2,J*2-1 650 MAT READ #2;A[N2] 660 A[I]=A[I]+X[J] 670 READ #2,J*2-1 680 MAT PRINT #2;A 690 READ #3,I*2-1 700 MAT READ #3;S[N2] 710 S[J]=S[J]+X[I]^2 720 READ #3,I*2-1 730 MAT PRINT #3;S 740 READ #3,J*2-1 750 MAT READ #3;S[N2] 760 S[I]=X[J]^2+S[I] 770 READ #3,J*2-1 780 MAT PRINT #3;S 790 NEXT J 800 NEXT I 810 NEXT N 820 FOR I=1 TO N2 830 FOR J=I TO N2 840 READ #2,I*2-1 850 MAT READ #2;A[N2] 860 READ #1,J*2-1 870 MAT READ #1;R[N2] 880 A[J]=A[J]/R[I] 890 READ #2,I*2-1 900 MAT PRINT #2;A 910 READ #3,I*2-1 920 MAT READ #3;S[N2] 930 S[J]=SQR(S[J]/R[I]-A[J]^2) 940 READ #3,I*2-1 950 MAT PRINT #3;S 960 IF I=J THEN 1070 970 READ #2,J*2-1 980 MAT READ #2;A[N2] 990 A[I]=A[I]/R[I] 1000 READ #2,J*2-1 1010 MAT PRINT #2;A 1020 READ #3,J*2-1 1030 MAT READ #3;S[N2] 1040 S[I]=SQR(S[I]/R[I]-A[I]^2) 1050 READ #3,J*2-1 1060 MAT PRINT #3;S 1070 NEXT J 1080 NEXT I 1090 FOR I=1 TO N2 1100 FOR J=I TO N2 1110 IF I=J THEN 1420 1120 READ #3,I*2-1 1130 MAT READ #3;S[N2] 1140 S1=S[J] 1150 READ #3,J*2-1 1160 MAT READ #3;S[N2] 1170 READ #1,I*2-1 1180 MAT READ #1;R[N2] 1190 IF S1*S[I]>0 THEN 1240 1200 R[J]=0 1210 READ #1,I*2-1 1220 MAT PRINT #1;R 1230 GOTO 1420 1240 READ #1,J*2-1 1250 MAT READ #1;X[N2] 1260 R2=X[I] 1270 READ #2,J*2-1 1280 MAT READ #2;A[N2] 1290 A2=A[I] 1300 READ #3,J*2-1 1310 MAT READ #3;S[N2] 1320 S2=S[I] 1330 READ #2,I*2-1 1340 MAT READ #2;A[N2] 1350 READ #3,I*2-1 1360 MAT READ #3;S[N2] 1370 READ #1,I*2-1 1380 MAT READ #1;R[N2] 1390 R[J]=(R[J]/R2-A[J]*A2)/(S[J]*S2) 1400 READ #1,I*2-1 1410 MAT PRINT #1;R 1420 NEXT J 1430 NEXT I 1440 J=1 1450 PRINT '10'13'10'13"NUMBER OF VALID OBSERVATIONS PER VARIABLE"'10'13'10'13,1,2,3,4,5,'10'13'10'13 1460 GOSUB 1880 1470 J=2 1480 PRINT '10'13'10'13'10'13"MEANS"'10'13'10'13,1,2,3,4,5,'10'13'10'13 1490 GOSUB 1880 1500 J=3 1510 PRINT '10'13'10'13 1520 PRINT '10'13'10'13'10'13"SIGMAS"'10'13'10'13,1,2,3,4,5 1530 PRINT 1540 GOSUB 1880 1550 REM FIX UP R 1560 FOR J=1 TO N2 1570 READ #1,J*2-1 1580 MAT READ #1;R[N2] 1590 R[J]=1 1600 READ #1,J*2-1 1610 MAT PRINT #1;R 1620 NEXT J 1630 REM FIX UP OFF DIAGONALS 1640 FOR J=2 TO N2 1650 FOR K=1 TO J-1 1660 READ #1,K*2-1 1670 MAT READ #1;X[N2] 1680 READ #1,J*2-1 1690 MAT READ #1;R[N2] 1700 R[K]=X[J] 1710 READ #1,J*2-1 1720 MAT PRINT #2;R 1730 NEXT K 1740 NEXT J 1750 PRINT '10'13'10'13 1760 PRINT '10'13'10'13"CORRELATION MATRIX"'10'13'10'13,1,2,3,4,5,'10'13'10'13 1770 FOR I=1 TO N2 1780 READ #1,I*2-1 1790 MAT READ #1;R[N2] 1800 FOR J1=1 TO N2 1810 PRINT .0001*INT(10000*R[J1]+.5), 1820 NEXT J1 1830 PRINT 1840 PRINT 1850 NEXT I 1860 PRINT '10'13'10'13 1870 CHAIN "$SEVS" 1880 REM OUTPUT OF DIAGONALS ROUTINE 1890 FOR I=1 TO N2 1900 READ #J,I*2-1 1910 MAT READ #J;X[N2] 1920 PRINT .0001*INT(10000*X[I]+.5), 1930 NEXT I 1940 RETURN 1950 END