File: FACTO.FT of Tape: Various/ETH/eth11-1
(Source file text)
C SAMPLE MAIN PROGRAM FOR FACTOR ANALYSIS C USES THE FOLLOWING SUBROUTINES: C CORRE - MEANS,STANDARD DEVIATIONS, AND CORRELATIONS C EIGEN - EIGENVALUES AND EIGENVECTORS OF A REAL,SYMM. MATRIX C TRACE - CUMULATIVE PERCENTAGE OF EIGENVALUES C LOAD - FACTOR LOADING C VARMX - VARIMAX ROTATION C C DATA - A ROUTINE SUPPLIED WITH THIS PROGRAM C C THE FOLLOWING DIMENSIONS MUST BE GREATER THAN OR EQUAL TO THE C NUMBER OF VARIABLES, M... DIMENSION B(29),D(29),S(29),T(29),XBAR(29) C THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO THE C PRODUCT OF M*M.. DIMENSION V(841) C THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO C (M+1)*M/2.. DIMENSION R(435) C THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO 51.. DIMENSION TV(51) COMMON IOUT,IN C INPUT CHANNEL = IN, OUTPUT CHANNEL = IOUT IOUT = 2 IN = 1 C 1 FORMAT(////21H FACTOR ANALYSIS.....A4,A2//3X,12HNO. OF CASES,4X, 1I6/3X,16HNO. OF VARIABLES,I6/) 2 FORMAT(//6H MEANS/(5F15.5)) 3 FORMAT(//20H STANDARD DEVIATIONS/(5F15.5)) 4 FORMAT(//25H CORRELATION COEFFICIENTS) 5 FORMAT(//4H ROW,I3/(5F15.5)) 6 FORMAT(///12H EIGENVALUES/(5F15.5)) 7 FORMAT(//37H CUMULATIVE PERCENTAGE OF EIGENVALUES/(5F15.5)) 8 FORMAT(///13H EIGENVECTORS) 9 FORMAT(//7H VECTOR,I3/(5F15.5)) 10 FORMAT(///16H FACTOR MATRIX (,I3,9H FACTORS)) 11 FORMAT(//9H VARIABLE,I3/(5F15.5)) 12 FORMAT(///10H ITERATION,7X,9HVARIANCES/8H CYCLE) 13 FORMAT(I6,F20.6) 14 FORMAT(///24H ROTATED FACTOR MATRIX (,I3,9H FACTORS)) 15 FORMAT(//9H VARIABLE,I3/(5F15.5)) 16 FORMAT(///23H CHECK ON COMMUNALITIES//9H VARIABLE,7X,8HORIGINAL, 112X,5HFINAL,10X,10HDIFFERENCE) 17 FORMAT(I6,3F18.5) 18 FORMAT(A4,A2,I5,I2,F6.0) 19 FORMAT(//5H ONLY,I2,30H FACTOR RETAINED. NO ROTATION ) C READ PROBLEM PARAMETER CARD 100 READ(IN,18) PR,PR1,N,M,CON C PR PROBLEM NUMBER (MAY BE ALPHAMERIC) C PR1 PROBLEM NUMBER (CONTINUED) C N NUMBER OF CASES C M NUMBER OF VARIABLES C CON CONSTANT USED TO DECIDE HOW MANY EIGENVALUES TO RETAIN C IF(N.EQ.0) STOP WRITE(IOUT,1)PR,PR1,N,M IO=0 X=0.0 CALL CORRE(N,M,IO,X,XBAR,S,V,R,D,B,T) C PRINT MEANS WRITE(IOUT,2)( XBAR(J),J=1,M) C PRINT STANDARD DEVIATIONS WRITE(IOUT,3) (S(J),J=1,M) C PRINT CORRELATION COEFFICIENTS WRITE(IOUT,4) DO 120 I=1,M DO 110 J=1,M IF(I-J) 102,104,104 102 L=I+(J*J-J)/2 GO TO 110 104 L=J+(I*I-I)/2 110 D(J)=R(L) 120 WRITE(IOUT,5) I,(D(J),J=1,M) MV=0 CALL EIGEN (R,V,M,MV) CALL TRACE(M,R,CON,K,D) C PRINT EIGENVALUES DO 130 I=1,K L=I+(I*I-I)/2 130 S(I)=R(L) WRITE(IOUT,6) (S(J),J=1,K) C PRINT CUMULATIVE PERCENTAGE OF EIGENVALUES WRITE(IOUT,7) (D(J),J=1,K) C PRINT EIGENVECTORS WRITE(IOUT,8) L=0 DO 150 J=1,K DO 140 I=1,M L=L+1 140 D(I) = V(L) 150 WRITE(IOUT,9) J,(D(I),I=1,M) CALL LOAD(M,K,R,V) C PRINT FACTOR MATRIX WRITE(IOUT,10) K DO 180 I=1,M DO 170 J=1,K L=M*(J-1)+I 170 D(J)=V(L) 180 WRITE(IOUT,11) I,(D(J),J=1,K) IF(K-1) 185,185,188 185 WRITE(IOUT,19)K GO TO 100 188 CALL VARMX(M,K,V,NC,TV,B,T,D,IER) C PRINT VARIANCES NV=NC+1 WRITE(IOUT,12) DO 190 I=1,NV NC=I-1 190 WRITE(IOUT,13) NC,TV(I) C PRINT ROTATED FACTOR MATRIX WRITE(IOUT,14) K DO 220 I=1,M DO 210 J=1,K L=M*(J-1)+I 210 S(J)=V(L) 220 WRITE(IOUT,15) I,(S(J),J=1,K) C PRINT COMMUNALITIES WRITE(IOUT,16) DO 230 I=1,M 230 WRITE(IOUT,17) I,B(I),T(I),D(I) GO TO 100 END C SAMPLE INPUT SUBROUTINE - DATA.FTN C C PURPOSE C READ AN OBSERVATION (N DATA VALUES) FROM INPUT DEVICE. C THIS SUBROUTINE IS CALLED BY THE SUBROUTINE CORRE AND MUST C BE PROVIDED BY THE USER. IF SIZE AND LOCATION OF DATA C FIELDS ARE DIFFERENT FROM PROBLEM TO PROBLEM, THIS SUBROUTINE C MUST BE RECOMPILED WITH A PROPRE FORMAT STATEMENT. C C USAGE C CALL DATA(M,D) C C DESCRIPTION OF PARAMETERS C M - THE NUMBER OF VARIABLES IN AN OBSERVATION. C D - OUTPUT VECTOR OF LENGTH M CONTAINING THE OBSERVATION DATA. C C REMARKS C THE TYPE OF CONVERSION SPECIFIED IN THE FORMAT MUST BE C EITHER F OR E. C C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED C NONE C SUBROUTINE DATA(M,D) DIMENSION D(1) COMMON IOUT,IN 1 FORMAT(12F6.0) C READ AN OBSERVATION FROM INPUT DEVICE. READ(IN,1) (D(I),I=1,M) RETURN END