1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 PAGE: 1 0REQUESTED OPTIONS (EXECUTE): OPT(2) XREF SXM 0OPTIONS IN EFFECT: NOLIST NOMAP XREF GOSTMT NODECK SOURCE TERM OBJECT FIXED TRMFLG SRCFLG NOSYM NORENT SDUMP(ISN) SXM NOVECTOR IL(DIM) NOTEST SC(*) NODC NOEC NOEMODE NOICA NODIRECTIVE NODBCS NOSAA NOPARALLEL NOSAVE NOTABS OPT(2) LANGLVL(77) NOFIPS FLAG(I) AUTODBL(NONE) LINECOUNT(60) CHARLEN(500) 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C C C CLUSPAC: Computer Programs for Mixture-Model Clustering C C C C C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C C C CMS DSN = MIX1DTA CLUSPAC C C C C C C THE PROGRAMS MIX* IN THE SUBLIBRARY CLUSPAC OF THE C C LIBRARY CLUSPAC ARE FOR CLUSTERING DATA BY C C ITERATIVE MAXIMIZATION OF THE MIXTURE-MODEL LIKELIHOOD C C C C N K C C --- -- C C L = | | > P(C)*F(X(I)|C), C C | | -- C C I=1 C=1 C C C C WHERE C C C C N = NUMBER OF OBSERVATIONS ("SAMPLE SIZE"), C C K = NUMBER OF CLUSTERS, C C X(I) = I-TH OBSERVATION, I = 1,2,...,N, C C F(X|C) = VALUE AT X OF THE C-TH CLASS-CONDITIONAL C C DENSITY FUNCTION (C=1,2,...,K) C C AND C C P(C) = PRIOR PROBABILITY OF CLASS C. C C C C C C REFERENCE FOR CLUSTERING BY MIXTURE MODEL: C C C C Wolfe, J. H. (1970). Pattern clustering by multivariate C C mixture analysis. Multivariate Behavioral Research 5, 329-350. C C C C C C IN THE PROGRAM NAME C C C C MIX1DTA C C C C THE "1" MEANS THAT THE PROGRAM IS FOR UNIVARIATE C C (1-DIMENSIONAL) DATA; C C C C THE "DT" MEANS THE VARIANCES ARE ALLOWED TO VARY ACROSS C C CLUSTERS; C C C 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 NAME:MAIN# PAGE: 2 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 C AND THE "A" MEANS THAT THERE IS AUTOMATIC SETTING OF NUMBERS C C OF CLUSTERS AND INITIAL MEANS. C C C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C PROGRAMMED BY C C DR. STANLEY L. SCLOVE 312/996-2681 C C DEPARTMENT OF C C INFORMATION & DECISION SCIENCES M/C 294 C C COLLEGE OF BUSINESS ADMINISTRATION C C UNIVERSITY OF ILLINOIS AT CHICAGO C C BOX 4348 C C CHICAGO, IL 60680-4348 C C C C C C VERSION 3.0 20-OCT-92 C C C C COPYRIGHT 1991, 1992 STANLEY LOUIS SCLOVE. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C RESTRICTIONS (CAN BE MODIFIED): C C N, SAMPLE SIZE, AT MOST 9999; C C K, NUMBER OF CLUSTERS, AT MOST 29; C C ITER, MAXIMUM NUMBER OF ITERATIONS, 20. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C CONTROL CARDS: C C C C (1) DATASET TITLE C C (2) N, IN FORMAT (2X,I4) C C (3) FMT, IN FORMAT (18A4), E.G., (1X,F4.1). C C ALLOW AT LEAST ONE BLANK IN FMT: IT WILL ALSO BE USED C C FOR OUTPUT, WHERE CC1 IS FOR CARRIAGE CONTROL. C C ALLOW A CC FOR THE DECIMAL POINT ON OUTPUT, C C WHETHER OR NOT THERE IS ONE ON INPUT. C C (4) DATA, IN FORMAT SPECIFIED BY FMT C C C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C C C C 1 DIMENSION X(9999),XMNDSQ(9999),ICLUS(9999),IOTA(9999) 2 DIMENSION XJ(9,9) 3 DIMENSION DSQ(29),SUM(29) 4 DIMENSION TITLE(18) 5 DIMENSION NC(29),XMEAN(29),XMEANOL(29) 6 DIMENSION BPLUS(29),BMINUS(29) C 7 DIMENSION FMT(18) 8 DIMENSION SS(29),SSD(29) 9 DIMENSION SD(29) 10 DIMENSION VAR(29) 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 NAME:MAIN# PAGE: 3 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 11 DIMENSION ICLSOL(9999) 12 DIMENSION F(9999,29) 13 DIMENSION P(29), XNC(29) 14 DIMENSION PP(29,9999) 15 DIMENSION XMXPR(9999) 16 DIMENSION DENOM(9999) 17 DIMENSION AICVEC(29),SCHVEC(29),XKSVEC(29) 18 DOUBLE PRECISION SUM,SS,F,P,PP,SSD,XNC C C CONTROL CARDS: C C (1) DATASET TITLE C (2) N, IN FORMAT (2X,I4) C (3) FMT, IN FORMAT (18A4), E.G., (1X,F4.1). C ALLOW AT LEAST ONE BLANK IN FMT: IT WILL ALSO BE USED C FOR OUTPUT, WHERE CC1 IS FOR CARRIAGE CONTROL. C ALLOW A CC FOR THE DECIMAL POINT ON OUTPUT, WHETHER OR NOR C THERE IS ONE ON INPUT. C (4) DATA, IN FORMAT SPECIFIED BY FMT C C 19 READ(5,15000) TITLE C C WRITE PROGRAM INFORMATION. 20 WRITE(6,20000) 21 WRITE(6,21000) 22 WRITE(6,22000) C 23 WRITE(6,16000) TITLE C C READ SAMPLE SIZE, N. 24 READ(5,10000) N 25 XN = N 26 WRITE(6, 1051) N C C READ DATA FORMAT. C Remove next statement for WATFIV version: 27 READ(5,15000) FMT C C READ DATA AND C COMPUTE STATISTICS OF WHOLE SAMPLE: 28 TOTAL=0.0 29 SUMSQS=0.0 30 SSDEVS=0.0 31 READ(5,FMT) ( X(I), I = 1,N ) C For WATFIV version: C READ(5, * ) ( X(I), I = 1,N ) C Initialize XMAX and XMIN: 32 XMAX = X(1) 33 XMIN = X(1) C 34 DO 100 I = 1,N 1 35 TOTAL = TOTAL + X(I) 1 36 SUMSQS = SUMSQS + X(I)*X(I) 1 37 IF (X(I) .LT. XMIN) XMIN=X(I) 1 39 IF (X(I) .GT. XMAX) XMAX=X(I) 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 NAME:MAIN# PAGE: 4 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 1 41 100 CONTINUE C C IF IT IS DESIRED TO PRINT OUT THE DATA, REMOVE THE "C"S C FROM CC1 IN THE APPROPRIATE FOLLOWING STATEMENTS: C WRITE DATA: C WRITE(6, 1009) C1009 FORMAT(1X,'DATA:'/) C WRITE(6, FMT) (X(I), I=1, N) C C WRITE SUMMARY STATISTICS FOR WHOLE SAMPLE: 42 WRITE(6, 1151) 43 WRITE(6,FMT) XMIN C WRITE(6, * ) XMIN C C 44 WRITE(6, 1152) 45 WRITE(6,FMT) XMAX C WRITE(6, * ) XMAX 46 XBAR = TOTAL/XN 47 SSDEVS = SUMSQS- TOTAL*TOTAL/XN 48 VARHAT1 = SSDEVS/XN 49 WRITE(6, 1112) XBAR 50 WRITE(6, 1113) VARHAT1 51 PI = 3.141593 52 TEMP = 2.0*PI*SSDEVS/N 53 XMN2LL = N*(1.0 + ALOG(TEMP)) 54 STDDEV = SQRT(VARHAT1) 55 WRITE(6,66000) XMN2LL 56 WRITE(6,68000) SSDEVS, STDDEV C NO. OF PARAMETERS FOR UNCLUSTERED SAMPLE IS: C 1 MEAN + 1 VARIANCE = 2 PARAMETERS 57 NOPARM = 1 + 1 C 58 AIC = XMN2LL + 2.0*NOPARM 59 WRITE(6,60000) AIC 60 SCH = XMN2LL + ALOG(XN)*NOPARM 61 XKASH = SCH - ALOG(2*VARHAT1**3) 62 WRITE(6,58000) SCH 63 WRITE(6,17000) XKASH C A TABLE OF MODEL SELECTION CRITERIA-VALUES FOR VARIOUS K C WILL BE PRINTED AT THE END. THE NEXT INSTRUCTIONS C SET UP THE FIRST ENTRIES FOR THAT TABLE. 64 AICVEC(1) = AIC 65 SCHVEC(1) = SCH 66 XKSVEC(1) = XKASH C C C C SET CONSTANTS. C XJ(IC,K), K=1 TO 9, IC = 1 TO K C OPTIMAL CLASS PROBABILITIES - NORMAL DISTRIBUTION C JOHARI & SCLOVE (1975). "PARTITIONING A DISTRIBUTION." C COMMUNICATIONS IN STATISTICS. 67 XJ(1,2)=.5 68 XJ(2,2)=.5 69 XJ(1,3)=.2703 70 XJ(2,3)=.4594 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 NAME:MAIN# PAGE: 5 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 71 XJ(3,3)=.2703 72 XJ(1,4)=.1631 73 XJ(2,4)=.3369 74 XJ(3,4)=.3369 75 XJ(4,4)=.1631 76 XJ(1,5)=.1068 77 XJ(2,5)=.2444 78 XJ(3,5)=.2976 79 XJ(4,5)=.2444 80 XJ(5,5)=.1068 81 XJ(1,6)=.0739 82 XJ(2,6)=.1810 83 XJ(3,6)=.2451 84 XJ(4,6)=.2451 85 XJ(5,6)=.1810 86 XJ(6,6)=.0739 87 XJ(1,7)=.0536 88 XJ(2,7)=.1375 89 XJ(3,7)=.1986 90 XJ(4,7)=.2106 91 XJ(5,7)=.1986 92 XJ(6,7)=.1375 93 XJ(7,7)=.0536 94 XJ(1,8)=.0402 95 XJ(2,8)=.1067 96 XJ(3,8)=.1613 97 XJ(4,8)=.1918 98 XJ(5,8)=.1918 99 XJ(6,8)=.1613 100 XJ(7,8)=.1067 101 XJ(8,8)=.0402 102 XJ(1,9)=.0310 103 XJ(2,9)=.0845 104 XJ(3,9)=.1324 105 XJ(4,9)=.1643 106 XJ(5,9)=.1756 107 XJ(6,9)=.1643 108 XJ(7,9)=.1324 109 XJ(8,9)=.0845 110 XJ(9,9)=.0310 C C PERFORM CLUSTERING FOR K = 2 TO KUP GROUPS. C 111 KUP = 17 C 112 DO 995 K = 2,KUP 1 113 WGSS = 0.0 1 114 WRITE(6,23000) K C C COMPUTE INITIAL MEANS, EQUALLY SPACED THROUGH RANGE OF DATA, C INITIAL VALUE OF VARIANCES C AND INITIAL PRIOR PROBABILITIES (EQUAL): 1 115 XK = K 1 116 DO 101 IC=1,K C XC = IC C 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 NAME:MAIN# PAGE: 6 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 C TO spread out the means to the min and max, use: C XMEAN(IC) = XMIN + (IC-1)*(XMAX-XMIN)/(K-1) C C To center the means more, instead use: 2 117 XMEAN(IC) = XMIN + IC*(XMAX-XMIN)/(K+1) C C TO SET INITIAL VALUE OF VARIANCES, USE THE VARIANCE-COMPONENTS C RELATIONSHIP C MS(TOTAL) = MS(BETWEEN) + MS(WITHIN) C WITH AN (ARBITRARY) ASSUMPTION THAT MS(WITHIN) = MS(TOTAL)/K. 2 118 VAR(IC) = VARHAT1/K C SET INITIAL VALUES OF PRIOR PROBABILITIES EQUAL TO THE C OPTIMAL VALUES FOR PARTITIONING A NORMAL DISTRIBUTION: 2 119 IF ( KUP .GT. 9 ) GO TO 103 2 120 P(IC) = XJ(IC,K) C TO SET INITIAL VALUES OF PRIOR PROBABILITIES EQUAL TO C BINOMIAL(X=IC-1;N=K-1,P=1/2). C FOR IC = 1,2,...,K, C REMOVE THE "C" FROM CC1 OF THE NEXT LINE: C P(IC) = GAMMA(XK)/(GAMMA(XC)*GAMMA(XK-XC+1)*(2**K)) C C FOR EQUAL INITIAL VALUES OF PRIOR PROBABILITIES: C 2 121 103 CONTINUE 2 122 P(IC) = 1.0/K C C 2 123 101 CONTINUE C C C WRITE INITIAL VALUES OF PRIOR PROBS: 1 124 WRITE(6,25000) C 1 125 WRITE(6, 1025) ( P(IC), IC = 1, K ) C C WRITE INITIAL MEANS: 1 126 WRITE(6,14000) C 1 127 WRITE(6,19000) ( XMEAN(IC), IC=1, K ) C WRITE INITIAL VARIANCE: 1 128 WRITE(6,24000) C 1 129 WRITE(6, 1017) VAR(1) 1 130 DO 105 INTGER=1,N 2 131 IOTA(INTGER) = INTGER 2 132 105 CONTINUE C 1 133 ITER = 1 C 1 134 601 CONTINUE C 1 135 IF (ITER .EQ. 1) GO TO 560 C STORE OLD CLUSTERING: 1 136 DO 565 I = 1,N 2 137 ICLSOL(I) = ICLUS(I) 2 138 565 CONTINUE 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 NAME:MAIN# PAGE: 7 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 C STORE OLD CLUSTERING RESULTS FOR TESTING CONVERGENCE: 1 139 XMN2LLOL = XMN2LL 1 140 DO 850 IC = 1,K 2 141 XMEANOL(IC) = XMEAN(IC) 2 142 850 CONTINUE C C COMMENCE DISTANCE COMPUTATIONS. 1 143 560 CONTINUE 1 144 DO 102 I = 1,N 2 145 DO 102 IC = 1,K 3 146 DSQ(IC) = ( XMEAN(IC) - X(I) )**2 3 147 ZSQ = DSQ(IC)/VAR(IC) 3 148 IF ( ZSQ .LE. 174.673 ) GO TO 110 3 149 F(I,IC) = 0.0 3 150 GO TO 102 3 151 110 CONTINUE C Note that pi is included in the computations for comparability C even though it is just a constant. 3 152 F(I,IC) = EXP(-ZSQ/2.0)/SQRT(2*PI*VAR(IC)) 3 153 102 CONTINUE C C COMPUTE POSTERIOR PROBABILITIES OF GROUP MEMBERSHIP C [PP(IC,I) = CONDITIONAL PROBABILITY OF CLUSTER IC, GIVEN X(I)]: 1 154 DO 405 I = 1,N 2 155 DENOM(I) = 0.0 2 156 DO 405 IC=1,K 3 157 DENOM(I) = DENOM(I) + P(IC)*F(I,IC) 3 158 405 CONTINUE 1 159 DO 406 I = 1,N 2 160 DO 406 IC=1,K C IF ( DENOM(I) .EQ. 0.0 ) DENOM(I)=0.0001 3 161 PP(IC,I)= P(IC)*F(I,IC)/DENOM(I) 3 162 406 CONTINUE C C COMPUTE NEW LABELS BY MAX POSTERIOR PROBABILITY: 1 163 DO 8 I = 1,N 2 164 XMXPR(I) = PP(1,I) 2 165 ICLUS(I) = 1 2 166 DO 8 IC = 2,K 3 167 IF ( PP(IC,I) .GT. XMXPR(I) ) GO TO 9 3 168 GO TO 8 3 169 9 XMXPR(I) = PP(IC,I) 3 170 ICLUS(I) = IC 3 171 8 CONTINUE C C WRITE NEW LABELS: 1 172 IF (N .GE. 31) GO TO 200 1 173 WRITE(6, 11000) 1 174 WRITE(6,12000) (IOTA(I), I=1, N) 1 175 WRITE(6,13000) (ICLUS(I), I=1, N) 1 176 200 CONTINUE C C UPDATE CLUSTER PRIOR PROBABILITIES P(IC), MEANS XMEAN(IC) AND C VARIANCE VARHAT: 1 177 WGSS = 0.0 1 178 DO 6 IC = 1,K 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 NAME:MAIN# PAGE: 8 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 2 179 XNC(IC) = 0.0 C XNC(IC) WILL BE THE SUM OVER ALL N OBSERVATIONS OF THEIR C POSTERIOR PROBABILITIES OF MEMBERSHIP IN CLUSTER IC. 2 180 SUM(IC) = 0.0 2 181 SS(IC) = 0.0 2 182 DO 67 I = 1,N 3 183 XNC(IC) = XNC(IC) + PP(IC,I) 3 184 SUM(IC) = SUM(IC) + PP(IC,I)*X(I) 3 185 SS(IC) = SS(IC) + PP(IC,I)*X(I)*X(I) 3 186 67 CONTINUE C C IF ONE OF THE K CLUSTERS BECOMES EMPTY, THE PROCEDURE C WILL GO ON TO THE NEXT VALUE OF K: 2 187 IF ( XNC(IC) .EQ. 0.0 ) GO TO 125 2 188 XMEAN(IC) = SUM(IC)/XNC(IC) 2 189 SSD(IC) = SS(IC) - SUM(IC)*SUM(IC)/XNC(IC) C 2 190 VAR(IC) = SSD(IC)/XNC(IC) C 2 191 SD(IC) = SQRT(VAR(IC)) C C Recall that XNC(IC) is the sum over all N observations of their C posterior probabilities of membership in cluster IC. 2 192 P(IC) = XNC(IC)/XN 2 193 WGSS = WGSS + SSD(IC) 2 194 6 CONTINUE C C COUNT NUMBERS IN CLUSTERS: 1 195 DO 66 IC = 1,K 2 196 NC(IC) = 0 2 197 66 CONTINUE 1 198 DO 400 I = 1,N 2 199 IGROUP = ICLUS(I) 2 200 NC(IGROUP) = NC(IGROUP) + 1 2 201 400 CONTINUE C C C 1 202 VARHAT = WGSS/XN C 1 203 SUMLNF = 0.0 1 204 DO 161 I=1,N 2 205 SUMPXF = 0.0 2 206 DO 159 IC=1,K 3 207 SUMPXF = SUMPXF + P(IC)*F(I,IC) 3 208 159 CONTINUE C F(I,IC) HAD NOT PREVIOUSLY BEEN DIVIDED BY SQRT(2*PI*VARHAT): C Oh, yes it had. C SUMPXF = SUMPXF/SQRT(2.0*PI*VARHAT) 2 209 SUMLNF = SUMLNF + ALOG(SUMPXF) 2 210 161 CONTINUE C 1 211 XMN2LL = -2.0*SUMLNF C 1 212 WGMS = WGSS/(N-K) 1 213 WRITE(6,66000) XMN2LL 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 NAME:MAIN# PAGE: 9 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 1 214 WRITE(6,64000) WGSS, WGMS 1 215 STDERR = SQRT(WGMS) 1 216 WRITE(6,71000) STDERR C 1 217 KM1 = K-1 1 218 DO 500 IC=1,KM1 2 219 ICP1 = IC+1 C Compute boundary between c-th and c+1-st classes. 2 220 B = XMEAN(IC)/VAR(IC) - XMEAN(ICP1)/VAR(ICP1) 2 221 A = 0.5*(1.0/VAR(ICP1) - 1.0/VAR(IC)) 2 222 C = DLOG(P(IC)/P(ICP1)) 2 223 C = ALOG(SD(ICP1)/SD(IC)) + C 2 224 TEMP=(XMEAN(ICP1))**2/(2.0*VAR(ICP1))-(XMEAN(IC))**2/(2.0*VAR(IC)) 2 225 C = C + TEMP 2 226 DISCR = B**2 - 4.0*A*C 2 227 BPLUS(IC) = (-B + SQRT(DISCR))/(2.0*A) 2 228 BMINUS(IC) = (-B - SQRT(DISCR))/(2.0*A) 2 229 500 CONTINUE 1 230 WRITE(6, 1036) ITER 1 231 WRITE(6, 1035) (BMINUS(IC), IC=1, KM1) 1 232 WRITE(6, 1020) (XMEAN(IC), IC=1, K) 1 233 IF (ITER .EQ. 1) GO TO 600 1 234 DO 555 I = 1,N 2 235 IF (ICLUS(I) .EQ. ICLSOL(I)) GO TO 555 2 236 GO TO 600 2 237 555 CONTINUE 1 238 600 CONTINUE C Even if no case changes cluster, another iteration will be C performed if the parameter estimates have changed much. 1 239 DO 2450 IC = 1,K 2 240 TEST=(XMEAN(IC)-XMEANOL(IC))/XMEANOL(IC) 2 241 TOL = 0.02 2 242 IF (ABS(TEST) .LE. TOL ) GO TO 2450 2 243 GO TO 2500 2 244 2450 CONTINUE C If all changes are small, write results for this value of K. 1 245 GO TO 530 C Otherwise, iterate further. 1 246 2500 CONTINUE 1 247 ITER = ITER + 1 C C IF PROCEDURE HAS NOT CONVERGED IN 40 ITERATIONS, IT WILL C GO ON TO THE NEXT VALUE OF K. 1 248 IF (ITER.GE.41) GO TO 570 1 249 GO TO 601 1 250 570 WRITE(6, 1160) 1 251 GO TO 2900 C C IF ONE OF THE K CLUSTERS BECOMES EMPTY, THE PROCEDURE C WILL GO ON TO THE NEXT VALUE OF K. 1 252 125 CONTINUE 1 253 WRITE(6, 1235) 1 254 GO TO 2900 C C 1 255 530 CONTINUE 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 NAME:MAIN# PAGE: 10 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 C 1 256 2900 CONTINUE 1 257 WRITE(6, 1040) (SUM(IC), IC=1, K) 1 258 WRITE(6, 1045) (NC(IC), IC=1, K) 1 259 WRITE(6,70000) (VAR(IC), IC=1, K) 1 260 WRITE(6, 1055) (SD(IC), IC=1, K) 1 261 WRITE(6, 1060) ( P(IC), IC=1, K) C VARHAT IS MLE OF VARIANCE. 1 262 VARHAT = WGSS/N 1 263 WRITE(6, 1100) VARHAT C C C C COMPUTE MODEL-SELECTION CRITERIA: C NO. PARAMETERS = K MEANS + K VARIANCES + (K-1) PROBS. 1 264 NOPARM = K + K + (K-1) C 1 265 WRITE(6,72000) NOPARM 1 266 AIC = XMN2LL + 2.0*NOPARM 1 267 SCH = XMN2LL + ALOG(XN)*NOPARM C 1 268 XKASH = SCH - ALOG(2*VARHAT**3) C 1 269 WRITE(6,60000) AIC 1 270 WRITE(6,58000) SCH 1 271 WRITE(6,17000) XKASH C C C C 1 272 AICVEC(K) = AIC 1 273 SCHVEC(K) = SCH 1 274 XKSVEC(K) = XKASH C C GO ON TO NEXT VALUE OF K: 1 275 995 CONTINUE C C WRITE VALUES OF MSC'S FOR VARIOUS K: 276 WRITE(6,34000) 277 DO 605 K = 1,KUP 1 278 WRITE(6,33000) K, AICVEC(K), SCHVEC(K), XKSVEC(K) 1 279 605 CONTINUE C 280 10000 FORMAT(2X,I4) 281 11000 FORMAT(1X,'CLUSTERING') 282 12000 FORMAT(1X,'POINT: '/, (1X,40I3)) 283 13000 FORMAT(1X,'CLUSTER: '/, (1X,40I3)) 284 33000 FORMAT(1X,'K=',I3, 3F15.2) 285 34000 FORMAT(1X,'MODEL SELECTION CRITERIA'/ X' AIC SCHWARZ KASHYAP '/) 286 14000 FORMAT(/1X,'INITIAL MEANS') 287 25000 FORMAT(/1X,'INITIAL VALUES OF PRIOR PROBS') 288 19000 FORMAT(1X, 9F13.2/) 289 1025 FORMAT(1X, 9F13.4/) 290 24000 FORMAT(/1X,'INITIAL VALUE OF VARIANCES') 291 1017 FORMAT(1X, F15.4/) 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 NAME:MAIN# PAGE: 11 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 292 1100 FORMAT(1X, 'M.L. ESTIMATE OF COMMON VARIANCE = ',F14.5/) 293 21000 FORMAT(1X,'CMS DSN = MIX1DTA CLUSPAC') 294 22000 FORMAT(1X,'Copyright 1991, 1992 Stanley L. Sclove '/) 295 23000 FORMAT('1',1X,'K = ',I2,' CLUSTERS') C 296 1020 FORMAT(1X,'MEANS: ',9F13.2) 297 64000 FORMAT(/1X,' POOLED STATISTICS: '/' WGSS = ',F14.4, X' WGMS = ',F14.4/) 298 1035 FORMAT(1X,'BOUNDARIES:', 9X, 9F9.1) C 299 1151 FORMAT(1X,'MINIMUM OF SAMPLE: ') 300 1152 FORMAT(1X,'MAXIMUM OF SAMPLE: ') 301 1112 FORMAT(/,1X,'MEAN = ', F14.4) 302 1113 FORMAT(1X, 'M.L. ESTIMATE OF VARIANCE = ',F14.5/) 303 66000 FORMAT(/1X,' MINUS 2 LOG LIKELIHOOD = ',F14.4/) 304 68000 FORMAT(/1X,' SSDEVS = ',F14.4,' STDDEV = ',F14.4/) 305 20000 FORMAT('1','****************************************', A/,1X,'PROGRAM MIX1DTA CLUSPAC '/ B,1X,'FOR CLUSTERING UNIVARIATE DATA (DATA ON THE LINE)'/ C1X,'DEVELOPED AND PROGRAMMED BY DR. STANLEY L. SCLOVE' D/,1X,'VERSION 3.0 20-OCT-92 '/) 306 1036 FORMAT(1X,'ITERATION ', I2) 307 1040 FORMAT(1X,'SUMS:',6X,9F13.2) 308 1045 FORMAT(1X,'NUMBERS:',3X,9(I10,3X)) 309 15000 FORMAT(18A4) 310 1051 FORMAT(1X,'N = ',I4/) 311 1055 FORMAT(1X,'STD.DEVS.: ',9F13.2) 312 1060 FORMAT(1X,'PROBS.: ',9F13.2) 313 16000 FORMAT(1X,18A4/) 314 70000 FORMAT(1X,'VARIANCES: ',9F13.2) 315 71000 FORMAT(1X,'STD.ERROR=SQRT(WGMS) = ',F13.4/) C 316 1160 FORMAT(1X,'THIS STEP HAS NOT CONVERGED IN 40 ITERATIONS. STOP') 317 60000 FORMAT(1X,'AIC = ', F14.4/) 318 58000 FORMAT(1X,'SCHWARZ CRITERION = ', F14.4/) 319 17000 FORMAT(/,1X,'KASHYAP CRITERION = ', F24.4) C 320 72000 FORMAT(/1X,'NUMBER OF PARAMETERS = ',I4/) 321 1235 FORMAT(1X,'NO OBSERVATIONS IN GROUP ',I3,'. STOP') C 322 1995 STOP 323 END 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 NAME:MAIN# PAGE: 12 0SYMBOL CROSS REFERENCE DICTIONARY 0PROGRAM NAME: MAIN# 0TAGS: A-ARRAY I-INTRINSIC FUNCTION S-ASSIGNED C-COMMON K-NAMED CONSTANT T-EXPLICITLY TYPED D-DUMMY ARGUMENT N-ENTRY V-INITIAL VALUE E-EQUIVALENCED P-PROMOTED X-EXTERNAL SUBPROGRAM F-STATEMENT FUNCTION Q-PADDED Y-DYNAMIC COMMON G-GENERIC NAME R-SUBPROGRAM NAME Z-EXTENDED COMMON 0NAME TYPE TAG DECLARED REFS (F:REFD S:SET B:REFD/MAY BE SET) +________ ____ ______ ________ ______________________________________ 0A R*4 221S 226F 227F 228F ABS GI 242 AIC R*4 58S 59F 64F 266S 269F 272F AICVEC R*4 A 17 64S 272S 278F ALOG R*4 I 53 60 61 209 223 267 268 B R*4 220S 226F 227F 228F BMINUS R*4 A 6 228S 231F BPLUS R*4 A 6 227S C R*4 222S 223F 223S 225F 225S 226F DENOM R*4 A 16 155S 157F 157S 161F DISCR R*4 226S 227F 228F DLOG R*8 I 222 DSQ R*4 A 3 146S 147F EXP GI 152 F R*8 AT 12 18 149S 152S 157F 161F 207F FMT R*4 A 7 27S 31 43F 45F I I*4 31S 31S 34S 35F 36F 36F 37F 38F 39F 40B 136S 137F 137B 144S 146F 149F 152B 154S 155F 157F 157F 157B 159S 161F 161F 161B 163S 164F 164F 165F 167F 167F 169F 169F 170B 174S 174S 175S 175S 182S 183F 184F 184F 185F 185F 185B 198S 199B 204S 207B 234S 235F 235B IC I*4 116S 117F 117F 118F 120F 120F 122B 125S 125S 127S 127S 140S 141F 141B 145S 146F 146F 147F 147F 149F 152F 152B 156S 157F 157B 160S 161F 161F 161B 166S 167F 169F 170B 178S 179F 180F 181F 183F 183F 183F 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 NAME:MAIN# PAGE: 13 0TAGS: A-ARRAY I-INTRINSIC FUNCTION S-ASSIGNED C-COMMON K-NAMED CONSTANT T-EXPLICITLY TYPED D-DUMMY ARGUMENT N-ENTRY V-INITIAL VALUE E-EQUIVALENCED P-PROMOTED X-EXTERNAL SUBPROGRAM F-STATEMENT FUNCTION Q-PADDED Y-DYNAMIC COMMON G-GENERIC NAME R-SUBPROGRAM NAME Z-EXTENDED COMMON 0NAME TYPE TAG DECLARED REFS (F:REFD S:SET B:REFD/MAY BE SET) +________ ____ ______ ________ ______________________________________ 0 184F 184F 184F 185F 185F 185F 187F 188F 188F 188F 189F 189F 189F 189F 189F 190F 190F 190F 191F 191F 192F 192F 193B 195S 196B 206S 207F 207B 218S 219F 220F 220F 221F 222F 223F 224F 224F 227F 228B 231S 231S 232S 232S 239S 240F 240F 240B 257S 257S 258S 258S 259S 259S 260S 260S 261S 261S ICLSOL I*4 A 11 137S 235F ICLUS I*4 A 1 137F 165S 170S 175F 199F 235F ICP1 I*4 219S 220F 220F 221F 222F 223F 224F 224F IGROUP I*4 199S 200F 200F INTGER I*4 130S 131F 131B IOTA I*4 A 1 131S 174F ITER I*4 133S 135F 230F 233F 247F 247S 248F K I*4 112S 114F 115F 116F 117F 118F 120F 122F 125F 127F 140F 145F 156F 160F 166F 178F 195F 206F 212F 217F 232F 239F 257F 258F 259F 260F 261F 264F 264F 264F 272F 273F 274B 277S 278F 278F 278F 278B KM1 I*4 217S 218F 231F KUP I*4 111S 112F 119F 277F N I*4 24S 25F 26F 31 34F 52F 53F 130F 136F 144F 154F 159F 163F 172F 174F 175F 182F 198F 204F 212F 234F 262F NC I*4 A 5 196S 200F 200S 258F NOPARM I*4 57S 58F 60F 264S 265F 266F 267F P R*8 AT 13 18 120S 122S 125F 157F 161F 192S 207F 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 NAME:MAIN# PAGE: 14 0TAGS: A-ARRAY I-INTRINSIC FUNCTION S-ASSIGNED C-COMMON K-NAMED CONSTANT T-EXPLICITLY TYPED D-DUMMY ARGUMENT N-ENTRY V-INITIAL VALUE E-EQUIVALENCED P-PROMOTED X-EXTERNAL SUBPROGRAM F-STATEMENT FUNCTION Q-PADDED Y-DYNAMIC COMMON G-GENERIC NAME R-SUBPROGRAM NAME Z-EXTENDED COMMON 0NAME TYPE TAG DECLARED REFS (F:REFD S:SET B:REFD/MAY BE SET) +________ ____ ______ ________ ______________________________________ 0 222F 222F 261F PI R*4 51S 52F 152F PP R*8 AT 14 18 161S 164F 167F 169F 183F 184F 185F SCH R*4 60S 61F 62F 65F 267S 268F 270F 273F SCHVEC R*4 A 17 65S 273S 278F SD R*4 A 9 191S 223F 223F 260F SQRT GI 54 152 191 215 227 228 SS R*8 AT 8 18 181S 185F 185S 189F SSD R*8 AT 8 18 189S 190F 193F SSDEVS R*4 30S 47S 48F 52F 56F STDDEV R*4 54S 56F STDERR R*4 215S 216F SUM R*8 AT 3 18 180S 184F 184S 188F 189F 189F 257F SUMLNF R*4 203S 209F 209S 211F SUMPXF R*4 205S 207F 207S 209F SUMSQS R*4 29S 36F 36S 47F TEMP R*4 52S 53F 224S 225F TEST R*4 240S 242F TITLE R*4 A 4 19S 23F TOL R*4 241S 242F TOTAL R*4 28S 35F 35S 46F 47F 47F VAR R*4 A 10 118S 129F 147F 152F 190S 191F 220F 220F 221F 221F 224F 224F 259F VARHAT R*4 202S 262S 263F 268F VARHAT1 R*4 48S 50F 54F 61F 118F WGMS R*4 212S 214F 215F WGSS R*4 113S 177S 193F 193S 202F 212F 214F 262F X R*4 A 1 31S 32F 33F 35F 36F 36F 37F 38F 39F 40F 146F 184F 185F 185F XBAR R*4 46S 49F XJ R*4 A 2 67S 68S 69S 70S 71S 72S 73S 74S 75S 76S 77S 78S 79S 80S 81S 82S 83S 84S 85S 86S 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 NAME:MAIN# PAGE: 15 0TAGS: A-ARRAY I-INTRINSIC FUNCTION S-ASSIGNED C-COMMON K-NAMED CONSTANT T-EXPLICITLY TYPED D-DUMMY ARGUMENT N-ENTRY V-INITIAL VALUE E-EQUIVALENCED P-PROMOTED X-EXTERNAL SUBPROGRAM F-STATEMENT FUNCTION Q-PADDED Y-DYNAMIC COMMON G-GENERIC NAME R-SUBPROGRAM NAME Z-EXTENDED COMMON 0NAME TYPE TAG DECLARED REFS (F:REFD S:SET B:REFD/MAY BE SET) +________ ____ ______ ________ ______________________________________ 0 87S 88S 89S 90S 91S 92S 93S 94S 95S 96S 97S 98S 99S 100S 101S 102S 103S 104S 105S 106S 107S 108S 109S 110S 120F XK R*4 115S XKASH R*4 61S 63F 66F 268S 271F 274F XKSVEC R*4 A 17 66S 274S 278F XMAX R*4 32S 39F 40S 45F 117F XMEAN R*4 A 5 117S 127F 141F 146F 188S 220F 220F 224F 224F 232F 240F XMEANOL R*4 A 5 141S 240F 240F XMIN R*4 33S 37F 38S 43F 117F 117F XMNDSQ R*4 A 1 UNREFERENCED XMN2LL R*4 53S 55F 58F 60F 139F 211S 213F 266F 267F XMN2LLOL R*4 139S XMXPR R*4 A 15 164S 167F 169S XN R*4 25S 46F 47F 48F 60F 192F 202F 267F XNC R*8 AT 13 18 179S 183F 183S 187F 188F 189F 190F 192F ZSQ R*4 147S 148F 152F 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 NAME:MAIN# PAGE: 16 0LABEL CROSS REFERENCE DICTIONARY 0TAGS: A-USED AS ARGUMENT F-FORMAT S-USED IN ASSIGN STATEMENT B-OBJECT OF BRANCH N-NON-EXECUTABLE 0 LABEL TAG DEFINED REFERENCED +____________ ___ _______ ___________________________________________ 0 6 194 178 8 B 171 163 166 168 9 B 169 167 66 197 195 67 186 182 100 41 34 101 123 116 102 B 153 144 145 150 103 B 121 119 105 132 130 110 B 151 148 125 B 252 187 159 208 206 161 210 204 200 B 176 172 400 201 198 405 158 154 156 406 162 159 160 500 229 218 530 B 255 245 555 B 237 234 235 560 B 143 135 565 138 136 570 B 250 248 600 B 238 233 236 601 B 134 249 605 279 277 850 142 140 995 275 112 1017 NF 291 129 1020 NF 296 232 1025 NF 289 125 1035 NF 298 231 1036 NF 306 230 1040 NF 307 257 1045 NF 308 258 1051 NF 310 26 1055 NF 311 260 1060 NF 312 261 1100 NF 292 263 1112 NF 301 49 1113 NF 302 50 1151 NF 299 42 1152 NF 300 44 1160 NF 316 250 1235 NF 321 253 1995 322 UNREFERENCED 2450 B 244 239 242 2500 B 246 243 2900 B 256 251 254 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN OCT 20, 1992 22:35:03 NAME:MAIN# PAGE: 17 0TAGS: A-USED AS ARGUMENT F-FORMAT S-USED IN ASSIGN STATEMENT B-OBJECT OF BRANCH N-NON-EXECUTABLE 0 LABEL TAG DEFINED REFERENCED +____________ ___ _______ ___________________________________________ 0 10000 NF 280 24 11000 NF 281 173 12000 NF 282 174 13000 NF 283 175 14000 NF 286 126 15000 NF 309 19 27 16000 NF 313 23 17000 NF 319 63 271 19000 NF 288 127 20000 NF 305 20 21000 NF 293 21 22000 NF 294 22 23000 NF 295 114 24000 NF 290 128 25000 NF 287 124 33000 NF 284 278 34000 NF 285 276 58000 NF 318 62 270 60000 NF 317 59 269 64000 NF 297 214 66000 NF 303 55 213 68000 NF 304 56 70000 NF 314 259 71000 NF 315 216 72000 NF 320 265 0 NUMBER MODULE LEVEL ISN VS FORTRAN ERROR MESSAGES + ______ ______ _____ ___ __ _______ _____ ________ 0ILX3477I VQMM 4(W) AFTER FOLDING A LOGICAL EXPRESSION IN AN IF STATEMENT, CONSTANT PROPAGATION HAS DETECTED AND DELETED UNREACHABLE CODE, STARTING AT ISN "120". ENSURE THAT ALL USER CODE IS REFERENCED AND REACHABLE. 0*STATISTICS* SOURCE STATEMENTS: 321, PROGRAM SIZE: 4892800 BYTES, PROGRAM NAME: MAIN#, PAGE: 1 *STATISTICS* 1 DIAGNOSTIC GENERATED. SEVERITY CODE IS 4. **MAIN#** END OF COMPILATION 1 ****** TIME STAMP: 92.29422.35.03