File: MDISC.FT of Tape: Various/ETH/eth11-1
(Source file text)
C SAMPLE PROGRAM FOR DISCRIMINANT ANALYSIS - MDISC C USES THE FOLLOWING ROUTINES: DMATX,MINV,DISCR C THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO THE C NUMBER OF GROUPS, K. DIMENSION N(4) C THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO THE C NUMBER OF VARIABLES, M. DIMENSION CMEAN(6) C THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO THE C PRODUCT OF M*K. DIMENSION XBAR(24) C THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO THE C PRODUCT OF (M+1)*K. DIMENSION C(28) C THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO THE C PRODUCT OF M*M. DIMENSION D(36) C THE FOLLOWING DIMENSIONS MUST BE GREATER THAN OR EQUAL TO THE C TOTAL OF SAMPLE SIZES OF K GROUPS COMBINED, T WHERE C T = N(1)+N(2)+...+N(K) DIMENSION P(30),LG(30) C THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO THE C TOTAL DATA POINTS WHICH IS EQUAL TO THE PRODUCT OF T*M. DIMENSION X(180) C ..................................................... 1 FORMAT(A4,A2,2I2,12I5/(14I5)) 2 FORMAT(//' DISCRIMINANT ANALYSIS...'A4,A2/' NUMBER OF GROUPS' 1 7X,I3/' NUMBER OF VARIABLES'I7/' SAMPLE SIZES..'/ 2 12X,'GROUP') 3 FORMAT(12X,I3,8X,I4) 4 FORMAT(//2X) 5 FORMAT(12F6.0) 6 FORMAT(/' GROUP',I3,' MEANS'/(6F13.5)) 7 FORMAT(//' POOLED DISPERSION MATRIX') 8 FORMAT(/' ROW',I3/(6F13.5)) 9 FORMAT(//' COMMON MEANS'/(6F13.5)) 10 FORMAT(//' GENERALIZED MAHALANOBIS D-SQUARE',F15.5/) 11 FORMAT(/' DISCRIMINANT FUNCTION',I3//6X,'CONSTANT * 1COEFFICIENTS'//F13.5,' * '4F13.5/(18X,4F13.5)) 12 FORMAT(//' EVALUATION OF CLASSIFICATION FUNCTIONS FOR EACH 1 OBSERVATION') 13 FORMAT(/' GROUP',I3/19X'PROBABILITY ASSOCIATED WITH'11X, 1'LARGEST'/' OBSERVATION'6X'LARGEST DISCRIMINANT FUNCTION'8X 2'FUNCTION NO.') 14 FORMAT(I7,20X,F8.5,20X,I6) C...................................................... C C OUTPUT CHANNEL = IOUT, INPUT CHANNEL = IN IOUT=2 IN=1 C READ PROBLEM PARAMETER CARD 100 READ(IN,1) PR,PR1,K,M,(N(I),I=1,K) C PR=PROBLEM NUMBER (MAY BE ALPHAMERIC) C PR1=PROBLEM NUMBER CONTINUED C K=NUMBER OF GROUPS C M=NUMBER OF VARIABLES C N=VECTOR OF LENGTH K CONTAINING SAMPLE SIZES IF(K.EQ.0) STOP WRITE(IOUT,2) PR,PR1,K,M DO 110 I=1,K 110 WRITE(IOUT,3) I,N(I) WRITE(IOUT,4) C READ DATA L=0 DO 130 I=1,K N1=N(I) DO 120 J=1,N1 READ(IN,5) (CMEAN(IJ),IJ=1,M) L=L+1 N2=L-N1 DO 120 IJ=1,M N2=N2+N1 120 X(N2)=CMEAN(IJ) 130 L=N2 CALL DMATX(K,M,N,X,XBAR,D,CMEAN) C PRINT MEANS AND POOLED DISPERSION MATRIX L=0 DO 150 I=1,K DO 140 J=1,M L=L+1 140 CMEAN(J)=XBAR(L) 150 WRITE(IOUT,6) I,(CMEAN(J),J=1,M) WRITE(IOUT,7) DO 170 I=1,M L=I-M DO 160 J=1,M L=L+M 160 CMEAN(J)=D(L) 170 WRITE(IOUT,8) I,(CMEAN(J),J=1,M) CALL MINV(D,M,DET,CMEAN,C) CALL DISCR(K,M,N,X,XBAR,D,CMEAN,V,C,P,LG) C PRINT COMMON MEANS WRITE(IOUT,9) (CMEAN(I),I=1,M) C PRINT GENERALIZED MAHALANOBIS D-SQUARE WRITE(IOUT,10) V C PRINT CONSTANTS AND COEFFICIENTS OF DISCRIMINANT FUNCTIONS N1=1 N2=M+1 DO 180 I=1,K WRITE(IOUT,11) I,(C(J),J=N1,N2) N1=N1+(M+1) 180 N2=N2+(M+1) C PRINT EVALUATION OF CLASSIFICATION FUNCTIONS FOR EACH C OBSERVATION WRITE(IOUT,12) N1=1 N2=N(1) DO 210 I=1,K WRITE(IOUT,13) I L=0 DO 190 J=N1,N2 L=L+1 190 WRITE(IOUT,14) L,P(J),LG(J) IF(I-K) 200,100,100 200 N1=N1+N(I) N2=N2+N(I+1) 210 CONTINUE STOP END