Google
 

Trailing-Edge - PDP-10 Archives - decus_20tap2_198111 - decus/20-0026/facto.cdk
There are 2 other files named facto.cdk in the archive. Click here to see a list.
$JOB FACTO[30,30]
$FORTRAN FACTO
C                                                                       FCTO  10
C     ................................................................. FCTO  20
C                                                                       FCTO  30
C        SAMPLE MAIN PROGRAM FOR FACTOR ANALYSIS - FACTO                FCTO  40
C                                                                       FCTO  50
C        PURPOSE                                                        FCTO  60
C           (1) READ THE PROBLEM PARAMETER CARD, (2) CALL FIVE SUBROU-  FCTO  70
C           TINES TO PERFORM A PRINCIPAL COMPONENT SOLUTION AND THE     FCTO  80
C           VARIMAX ROTATION OF A FACTOR MATRIX, AND (3) PRINT THE      FCTO  90
C           RESULTS.                                                    FCTO 100
C                                                                       FCTO 110
C        REMARKS                                                        FCTO 120
C           NONE                                                        FCTO 130
C                                                                       FCTO 140
C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED                  FCTO 150
C           CORRE  (WHICH, IN TURN, CALLS THE SUBROUTINE NAMED DATA.)   FCTO 160
C           EIGEN                                                       FCTO 170
C           TRACE                                                       FCTO 180
C           LOAD                                                        FCTO 190
C           VARMX                                                       FCTO 200
C                                                                       FCTO 210
C        METHOD                                                         FCTO 220
C           REFER TO 'BMD COMPUTER PROGRAMS MANUAL', EDITED BY W. J.    FCTO 230
C           DIXON, UCLA, 1964.                                          FCTO 240
C                                                                       FCTO 250
C     ..................................................................FCTO 260
C                                                                       FCTO 270
C     THE FOLLOWING DIMENSIONS MUST BE GREATER THAN OR EQUAL TO THE     FCTO 280
C     NUMBER OF VARIABLES, M..                                          FCTO 290
C                                                                       FCTO 300
         DIMENSION B(35),D(35),S(35),T(35),XBAR(35)                     FCTO 310
C                                                                       FCTO 320
C     THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO THE      FCTO 330
C     PRODUCT OF M*M..                                                  FCTO 340
C                                                                       FCTO 350
         DIMENSION V(1225)                                              FCTO 360
C                                                                       FCTO 370
C     THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO          FCTO 380
C     (M+1)*M/2..                                                       FCTO 390
C                                                                       FCTO 400
         DIMENSION R(630)                                               FCTO 410
C                                                                       FCTO 420
C     THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO 51..     FCTO 430
C                                                                       FCTO 440
         DIMENSION TV(51)                                               FCTO 450
C                                                                       FCTO 460
C     ..................................................................FCTO 470
C                                                                       FCTO 480
C        IF A DOUBLE PRECISION VERSION OF THIS ROUTINE IS DESIRED, THE  FCTO 490
C        C IN COLUMN 1 SHOULD BE REMOVED FROM THE DOUBLE PRECISION      FCTO 500
C        STATEMENT WHICH FOLLOWS.                                       FCTO 510
C                                                                       FCTO 520
C     DOUBLE PRECISION XBAR,S,V,R,D,B,T,TV                              FCTO 530
C                                                                       FCTO 540
C        THE C MUST ALSO BE REMOVED FROM DOUBLE PRECISION STATEMENTS    FCTO 550
C        APPEARING IN OTHER ROUTINES USED IN CONJUNCTION WITH THIS      FCTO 560
C        ROUTINE.                                                       FCTO 570
C                                                                       FCTO 580
C        ...............................................................FCTO 590
C                                                                       FCTO 600
    1 FORMAT(21H1FACTOR ANALYSIS.....A4,A2//3X,12HNO. OF CASES,4X,I6/3X,FCTO 610
     116HNO. OF VARIABLES,I6/)                                          FCTO 620
    2 FORMAT(6H0MEANS/(8F15.5))                                         FCTO 630
    3 FORMAT(20H0STANDARD DEVIATIONS/(8F15.5))                          FCTO 640
    4 FORMAT(25H0CORRELATION COEFFICIENTS)                              FCTO 650
    5 FORMAT(4H0ROWI3/(10F12.5))                                        FCTO 660
    6 FORMAT(1H0/12H EIGENVALUES/(10F12.5))                             FCTO 670
    7 FORMAT(37H0CUMULATIVE PERCENTAGE OF EIGENVALUES/(10F12.5))        FCTO 680
    8 FORMAT(1H0/13H EIGENVECTORS)                                      FCTO 690
    9 FORMAT(7H0VECTORI3/(10F12.5))                                     FCTO 700
   10 FORMAT(1H0/16H FACTOR MATRIX (,I3,9H FACTORS))                    FCTO 710
   11 FORMAT(9H0VARIABLEI3/(10F12.5))                                   FCTO 720
   12 FORMAT(1H0/10H ITERATION,7X,9HVARIANCES/8H   CYCLE)               FCTO 730
   13 FORMAT(I6,F20.6)                                                  FCTO 740
   14 FORMAT(1H0/24H ROTATED FACTOR MATRIX (I3,9H FACTORS))             FCTO 750
   15 FORMAT(9H0VARIABLEI3/(10F12.5))                                   FCTO 760
   16 FORMAT(1H0/23H CHECK ON COMMUNALITIES//9H VARIABLE,7X,8HORIGINAL, FCTO 770
     112X,5HFINAL,10X,10HDIFFERENCE)                                    FCTO 780
   17 FORMAT(I6,3F18.5)                                                 FCTO 790
   18 FORMAT(A4,A2,I5,I2,F6.0)                                          FCTO 800
   19 FORMAT(5H0ONLY,I2,30H FACTOR RETAINED.  NO ROTATION)              FCTO 810
C                                                                       FCTO 820
C     ..................................................................FCTO 830
C                                                                       FCTO 840
C     READ PROBLEM PARAMETER CARD                                       FCTO 850
C                                                                       FCTO 860
  100 READ (5,18,END=999) PR,PR1,N,M,CON                                FCTO 870
C        PR.........PROBLEM NUMBER (MAY BE ALPHAMERIC)                  FCTO 880
C        PR1........PROBLEM NUMBER (CONTINUED)                          FCTO 890
C        N..........NUMBER OF CASES                                     FCTO 900
C        M..........NUMBER OF VARIABLES                                 FCTO 910
C        CON........CONSTANT USED TO DECIDE HOW MANY EIGENVALUES        FCTO 920
C                     TO RETAIN                                         FCTO 930
C                                                                       FCTO 940
      WRITE (6,1) PR,PR1,N,M                                            FCTO 950
C                                                                       FCTO 960
      IO=0                                                              FCTO 970
      X=0.0                                                             FCTO 980
C                                                                       FCTO 990
      CALL CORRE (N,M,IO,X,XBAR,S,V,R,D,B,T)                            FCTO1000
C                                                                       FCTO1010
C     PRINT MEANS                                                       FCTO1020
C                                                                       FCTO1030
      WRITE (6,2) (XBAR(J),J=1,M)                                       FCTO1040
C                                                                       FCTO1050
C     PRINT STANDARD DEVIATIONS                                         FCTO1060
C                                                                       FCTO1070
      WRITE (6,3) (S(J),J=1,M)                                          FCTO1080
C                                                                       FCTO1090
C     PRINT CORRELATION COEFFICIENTS                                    FCTO1100
C                                                                       FCTO1110
      WRITE (6,4)                                                       FCTO1120
      DO 120 I=1,M                                                      FCTO1130
      DO 110 J=1,M                                                      FCTO1140
      IF(I-J) 102, 104, 104                                             FCTO1150
  102 L=I+(J*J-J)/2                                                     FCTO1160
      GO TO 110                                                         FCTO1170
  104 L=J+(I*I-I)/2                                                     FCTO1180
  110 D(J)=R(L)                                                         FCTO1190
  120 WRITE (6,5) I,(D(J),J=1,M)                                        FCTO1200
C                                                                       FCTO1210
      MV=0                                                              FCTO1220
      CALL EIGEN (R,V,M,MV)                                             FCTO1230
C                                                                       FCTO1240
      CALL TRACE (M,R,CON,K,D)                                          FCTO1250
C                                                                       FCTO1260
C     PRINT EIGENVALUES                                                 FCTO1270
C                                                                       FCTO1280
      DO 130 I=1,K                                                      FCTO1290
      L=I+(I*I-I)/2                                                     FCTO1300
  130 S(I)=R(L)                                                         FCTO1310
      WRITE (6,6) (S(J),J=1,K)                                          FCTO1320
C                                                                       FCTO1330
C     PRINT CUMULATIVE PERCENTAGE OF EIGENVALUES                        FCTO1340
C                                                                       FCTO1350
      WRITE (6,7) (D(J),J=1,K)                                          FCTO1360
C                                                                       FCTO1370
C     PRINT EIGENVECTORS                                                FCTO1380
C                                                                       FCTO1390
      WRITE (6,8)                                                       FCTO1400
      L=0                                                               FCTO1410
      DO 150 J=1,K                                                      FCTO1420
      DO 140 I=1,M                                                      FCTO1430
      L=L+1                                                             FCTO1440
  140 D(I)=V(L)                                                         FCTO1450
  150 WRITE (6,9) J,(D(I),I=1,M)                                        FCTO1460
C                                                                       FCTO1470
      CALL LOAD (M,K,R,V)                                               FCTO1480
C                                                                       FCTO1490
C     PRINT FACTOR MATRIX                                               FCTO1500
C                                                                       FCTO1510
      WRITE (6,10) K                                                    FCTO1520
      DO 180 I=1,M                                                      FCTO1530
      DO 170 J=1,K                                                      FCTO1540
      L=M*(J-1)+I                                                       FCTO1550
  170 D(J)=V(L)                                                         FCTO1560
  180 WRITE (6,11) I,(D(J),J=1,K)                                       FCTO1570
C                                                                       FCTO1580
      IF(K-1) 185, 185, 188                                             FCTO1590
  185 WRITE (6,19) K                                                    FCTO1600
      GO TO 100                                                         FCTO1610
C                                                                       FCTO1620
  188 CALL VARMX (M,K,V,NC,TV,B,T,D,IER)                                FCTO1630
	IF (IER .EQ. 1) WRITE (6,998)
998	FORMAT(/' **** WARNING ****'/
	1	' CONVERGENCE NOT REACHED AFTER 50 ITERATIONS'/)
C                                                                       FCTO1640
C     PRINT VARIANCES                                                   FCTO1650
C                                                                       FCTO1660
      NV=NC+1                                                           FCTO1670
      WRITE (6,12)                                                      FCTO1680
      DO 190 I=1,NV                                                     FCTO1690
      NC=I-1                                                            FCTO1700
  190 WRITE (6,13) NC,TV(I)                                             FCTO1710
C                                                                       FCTO1720
C     PRINT ROTATED FACTOR MATRIX                                       FCTO1730
C                                                                       FCTO1740
      WRITE (6,14) K                                                    FCTO1750
      DO 220 I=1,M                                                      FCTO1760
      DO 210 J=1,K                                                      FCTO1770
      L=M*(J-1)+I                                                       FCTO1780
  210 S(J)=V(L)                                                         FCTO1790
  220 WRITE (6,15) I,(S(J),J=1,K)                                       FCTO1800
C                                                                       FCTO1810
C     PRINT COMMUNALITIES                                               FCTO1820
C                                                                       FCTO1830
      WRITE (6,16)                                                      FCTO1840
      DO 230 I=1,M                                                      FCTO1850
  230 WRITE (6,17) I,B(I),T(I),D(I)                                     FCTO1860
      GO TO 100                                                         FCTO1870
999	STOP
      END                                                               FCTO1880
$FORTRAN DATA
C                                                                       DATA  10
C     ..................................................................DATA  20
C                                                                       DATA  30
C        SAMPLE INPUT SUBROUTINE - DATA                                 DATA  40
C                                                                       DATA  50
C        PURPOSE                                                        DATA  60
C           READ AN OBSERVATION (M DATA VALUES) FROM INPUT DEVICE.      DATA  70
C           THIS SUBROUTINE IS CALLED BY THE SUBROUTINE CORRE AND MUST  DATA  80
C           BE PROVIDED BY THE USER.  IF SIZE AND LOCATION OF DATA      DATA  90
C           FIELDS ARE DIFFERENT FROM PROBLEM TO PROBLEM, THIS SUB-     DATA 100
C           ROUTINE MUST BE RECOMPILED WITH A PROPER FORMAT STATEMENT.  DATA 110
C                                                                       DATA 120
C        USAGE                                                          DATA 130
C           CALL DATA (M,D)                                             DATA 140
C                                                                       DATA 150
C        DESCRIPTION OF PARAMETERS                                      DATA 160
C           M - THE NUMBER OF VARIABLES IN AN OBSERVATION.              DATA 170
C           D - OUTPUT VECTOR OF LENGTH M CONTAINING THE OBSERVATION    DATA 180
C               DATA.                                                   DATA 190
C                                                                       DATA 200
C        REMARKS                                                        DATA 210
C           THE TYPE OF CONVERSION SPECIFIED IN THE FORMAT MUST BE      DATA 220
C           EITHER F OR E.                                              DATA 230
C                                                                       DATA 240
C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED                  DATA 250
C           NONE                                                        DATA 260
C     ..................................................................DATA 270
C                                                                       DATA 280
      SUBROUTINE DATA (M,D)                                             DATA 290
C                                                                       DATA 300
      DIMENSION D(1)                                                    DATA 310
C                                                                       DATA 320
    1 FORMAT(12F6.0)                                                    DATA 330
C                                                                       DATA 340
C     READ AN OBSERVATION FROM INPUT DEVICE.                            DATA 350
C                                                                       DATA 360
      READ (5,1) (D(I),I=1,M)                                           DATA 370
C                                                                       DATA 380
C     INPUT DATA ARE WRITTEN ON LOGICAL TAPE 13 FOR THE RESIDUAL ANALY- DATA 390
C     SIS PERFORMED IN THE SAMPLE MULTIPLE REGRESSION PROGRAM.          DATA 400
C                                                                       DATA 410
      WRITE (13) (D(I),I=1,M)                                           DATA 420
      RETURN                                                            DATA 430
      END                                                               DATA 440
$DECK FAC.CDR
SAMPLE00023090001.0                                                           20
     7     7     9     7    15    36    60    15    24                        30
    13    18    25    15    13    35    61    18    30                        40
     9    18    24    23    12    43    62    14    31                        50
     7    13    25    36    11    12    63    26    32                        60
     6     8    20     7    15    46    18    28    15                        70
    10    12    30    11    10    42    27    12    17                        80
     7     6    11     7    15    35    60    20    25                        90
    16    19    25    16    13    30    64    20    30                       100
     9    22    26    24    13    40    66    15    32                       110
     8    15    26    30    13    10    66    25    34                       120
     8    10    20     8    17    40    20    30    18                       130
     9    12    28    11     8    45    30    15    19                       140
    11    17    21    30    10    45    60    17    30                       150
     9    16    26    27    14    31    59    19    17                       160
    10    15    24    18    12    29    48    18    26                       170
    11    11    30    19    19    26    57    20    30                       180
    16     9    16    20    18    31    60    21    17                       190
     9     8    19    14    16    33    67     9    19                       200
     7    18    22     9    15    37    62    11    20                       210
     8    11    23    18     9    36    61    22    24                       220
     6     6    27    23     7    40    55    24    31                       230
    10     9    26    26    10    37    57    27    29                       240
     8    10    26    15    11    42    59    20    28                       250
$EOD
.ASSIGN CDR 5
.ASSIGN LPT 6
.ASSIGN DSK 13
.SET CDR FAC
.EXECUTE/REL FACTO,DATA,WES:SSP/LIB
%FIN::
.DELETE FAC.CDR,FOR13.DAT