CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C ISOPAC SUITE C C www.uic.edu/classes/idsc/ids594/ISOPAC C C C TSPAC LIBRARY C www.uic.edu/classes/idsc/ids594/ISOPAC/TSPAC C C PROGRAM TSSG1DT C www.uic.edu/classes/idsc/ids594/ISOPAC/TSPAC/TSSG1DT/ C C C VERSION 1.1 2002: AUG 15 C C VERSION 1.0 2002: AUG 12 C C C PROGRAM TSPAC:TSSG1DT WAS DEVELOPED FROM TSPAC:TSSGPDTA. C C C C THE "TSSGP" PROGRAMS ARE FOR SEGMENTING MULTIVARIATE C C TIME SERIES. FOR UNIVARIATE TIME SERIES THE "TSSG1" PROGRAMS C C ARE USED. C C TSPAC INCLUDES PROGRAMS USING DISTANCE IN THE METRIC OF THE C C ESTIMATED COMMON COVARIANCE MATRIXm AS WELL AS PROGRAMS USING C C DIFFERENT COVARIANCE MATRICES, WITH ADJUSTMENT BY THE C C DETERMINANTS, I.E., USING ESTIMATED LOG LIKELIHOOD FOR THE C C GAUSSIAN MODEL WITH DIFFERENT COVARIANCE MATRICES. C C C C THERE ARE PROGRAMS IN MANUAL MODE, IN WHICH THE NUMBER OF C C CLASSES AND INITIAL MEANS ARE INPUT AND PROGRAMS IN AUTOMATIC C C MODE, WHICH TRY A RANGE OF NUMBERS OF CLASSES, WITH AUTOMATIC C C SETTING OF INITIAL MEANS. C C C C C C PROGRAMMED BY: C C C C DR. STANLEY L. SCLOVE 312-996-2681 C C INFORMATION & DECISION SCIENCES DEPT 312-996-2676 C C UNIVERSITY OF ILLINOIS AT CHICAGO C C 601 S. MORGAN ST. C C CHICAGO, IL 60607-7124 C C C C slsclove@uic.edu C C www.uic.edu/~slsclove C C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C C C C RESEARCH SUPPORTED IN PART AT VARIOUS TIMES BY: C C C C US AFOSR, ONR, ARO, and C CENTER FOR HEALTH STATISTICS, UIC C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C C PROGRAM RESTRICTIONS (CAN BE MODIFIED): C C N -- SERIES LENGTH, AT MOST 19999; C C IP -- NUMBER OF VARIABLES, AT MOST 20; C C K -- NUMBER OF CLASSES, AT MOST 29; C C ITER -- MAXIMUM NUMBER OF ITERATIONS, 50. C C C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C DIMENSION X( 19999) C DIMENSION SUM(29) DIMENSION D(29),ICLUS( 19999) C DIMENSION IOTA( 19999),JOTA(29) C DIMENSION TITLE(18) DIMENSION NG(29),XMEAN(29), XMNOL(29) DIMENSION FMT(18), MEANFT(18) DIMENSION SS(29),SSD(29),STDEV(29),STDOL(29) DIMENSION ICLSOL( 19999) C C DIMENSION ET(29) DIMENSION PG(29) C DIMENSION NT(29,29),IRSUM(29),TP(29,29) DIMENSION PROB(29) C C DOUBLE PRECISION SS,SUM DOUBLE PRECISION WGSS,SSD,STDEV DOUBLE PRECISION VARHAT C DOUBLE PRECISION P C DOUBLE PRECISION DET DOUBLE PRECISION D DOUBLE PRECISION TEMPIV,TEMPJV DOUBLE PRECISION F DOUBLE PRECISION CF C DOUBLE PRECISION A C DOUBLE PRECISION ET DOUBLE PRECISION PG DOUBLE PRECISION TP,PROB C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C TSSG1DT C C CONTROL STATEMENTS: C C C C DATASET TITLE C C IVERB, IN FORMAT (6X,I1) C C IVERB=1 gives verbose output; = 0, terse output. C C C SERIES LENGTH, N, IN FORMAT (2X,I5) C C FMT, IN FORMAT (18A4), E.G., (1X,F4.1) C C "FMT" WILL ALSO BE USED FOR OUTPUT: ALLOW AT LEAST ONE C C BLANK AT THE BEGINNING FOR CARRIAGE CONTROL. C C DATA, BY TIME POINT, IN FORMAT SPECIFIED BY FMT C C DATA ARE INDEXED BY TIME POINT. C C K, IN FORMAT (2X,I2) C C MEANFT, IN FORMAT (18A4) C INITIAL MEANS, ONE PER ROW, IN FORMAT MEANFT C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C WRITE PROGRAM INFORMATION: WRITE (6,14000) WRITE (6,17000) READ (5,28000) TITLE WRITE (6,35000) TITLE C READ (5,28500) IVERB IF ( IVERB .EQ. 1 ) WRITE(6,73000) IF ( IVERB .EQ. 0 ) WRITE(6,74000) C C READ SERIES LENGTH, N. READ(5,16000) N C WRITE(6,33000) N C C C READ DATA FORMAT. READ (5,28000) FMT WRITE (6,11000) FMT C C READ DATA. DO 300 I = 1,N READ (5,FMT) X(I) IF (I .EQ. 1) GO TO 100 GO TO 200 100 CONTINUE XMAX = X(1) XMIN = X(1) 200 CONTINUE IF (X(I) .LT. XMIN ) XMIN = X(I) IF (X(I) .GT. XMAX ) XMAX = X(I) 300 CONTINUE C WRITE (6,53500) DO 350 I = 1,4 WRITE (6,FMT) X(I) 350 CONTINUE WRITE (6,54000) XMIN,XMAX TEMP = (XMIN+XMAX)/2.0 WRITE (6,55000) TEMP C C SET CONSTANTS: C PI = 3.1415927 C IP = 1 C There are some formulas which are in terms of the C multivariate case, in terms of IP, so IP has been C set equal to 1. C C XN = N DO 400 INTEG=1,N IOTA(INTEG) = INTEG 400 CONTINUE C C K IS THE NUMBER OF CLASSES. C READ (5,18000) K C C READ INITIAL MEANS: C READ (5,34000) MEANFT DO 500 IG=1,K READ (5,MEANFT) XMEAN(IG) 500 CONTINUE C WRITE (6,19000) K C C C WRITE INITIAL MEANS: DO 600 IG = 1,K WRITE (6,20000) IG,XMEAN(IG) 600 CONTINUE C C SET CONSTANTS: DO 700 J = 1,K JOTA(J) = J 700 CONTINUE C C PARAMETERS FOR MODEL WITH COMMON VARIANCE ARE C K MEAN VECTORS AND ONE VARIANCE. C C IP HAS BEEN SET EQUAL TO ONE: IP = 1 NPRMC = K*IP + IP*(IP+1)/2 C PARAMETERS FOR MODEL WITH DIFFERENT COVARIANCE MATRICES ARE C K MEAN VECTORS AND K COVARIANCE MATRICES. NPRMDT = K*IP + K*IP*(IP+1)/2 C C NON-DISTRIBUTIONAL PARAMETERS: C K-BY-K TRANSITION PROBABILITY MATRIX C GIVES K(K-1) FREE TRANSITION PROBABILITIES C NPRMC = NPRMC + K*(K-1) NPRMDT = NPRMDT + K*(K-1) C C C FOR FIRST ITERATION, MARGINAL DISTRIBUTION OF LABELS, PROB, C IS TAKEN TO BE UNIFORM. DO 800 IG=1,K 800 PROB(IG) = 1.0/K C C ITER = 1 C ITERATIONS BEGIN HERE C --------------------- C 900 CONTINUE C Save values from preceding iteration: DO 950 IG = 1,K XMNOL(IG) = XMEAN(IG) IF(ITER .GT. 1) STDOL(IG) = STDEV(IG) 950 CONTINUE C IF (ITER .EQ. 1) GO TO 1100 DO 1000 I = 1,N C ICLSOL(I) = ICLUS(I) 1000 CONTINUE C "XN2" is negative 2 log likelihood. C SAVE PRECEDING VALUE OF -2 LOG MAX LIKELIHOOD: XN2C0L = XN2C XN2DOL = XN2D 1100 CONTINUE C C COMMENCE DISTANCE COMPUTATIONS. C DO 2400 I = 1,N C C INITIALIZE DISTANCES AT ZERO. DO 1200 L = 1,K D(L) = 0.0 1200 CONTINUE C FOR FIRST ITERATION, EUCLIDEAN DISTANCE IS USED BECAUSE C NO VARIANCE ESTIMATES ARE YET AVAILABLE. AFTER THE FIRST C ITERATION, DISTANCE WILL BE TAKEN IN THE METRIC OF THE C VARIANCES. C IF (ITER .GT. 1) GO TO 1400 C DO 1300 L=1,K D(L) = ( XMEAN(L) - X(I) )**2 1300 CONTINUE GO TO 1700 1400 CONTINUE DO 1600 L=1,K TEMPIV = XMEAN(L) - X(I) TEMPJV = XMEAN(L) - X(I) C PG(L) IS PRECISION (RECIPROCAL VARIANCE) OF GROUP L. D(L) = TEMPIV*PG(L)*TEMPJV C 1600 CONTINUE 1700 CONTINUE C DO 2200 L = 1,K C FOR FIRST ITERATION, CLASSIFICATION IS SIMPLY BY C MINIMUM DISTANCE. OTHERWISE, THE TRANSITION C PROBABILITIES AND DETERMINANTS ENTER: C IF (ITER .EQ. 1) GO TO 2200 C C UP TO NOW, D(L) IS (SQUARED) DISTANCE C IT MUST NOW BE MODIFIED TO PROBABILITY, C FOR MULTIPLICATION BY THE TRANSITION PROBABILITIES. C ADD LOG OF VARIANCE TO DISTANCE. C ET(L) IS LOG OF VARIANCE OF GROUP L: D(L) = D(L) + ET(L) ARG = -D(L)/2.0 IF (ARG .LT. -180.2) GO TO 1800 GO TO 1900 1800 D(L) = 0.0 GO TO 2000 1900 CONTINUE C C MOVE FROM LOG PROB SCALE TO PROB SCALE: D(L) = EXP(ARG) C D(L) IS NO LONGER A DISTANCE: C IT IS (PROPORTIONAL TO) THE BELONGING PROBABILITY 2000 CONTINUE C IF (I .EQ. 1) GO TO 2100 IG1 = ICLUS(I-1) C D(L) = -TP(IG1,L)*D(L) GO TO 2200 2100 CONTINUE C CLASSIFY FIRST OBSERVATION D(L) = -D(L)*PROB(L) 2200 CONTINUE C F = D(1) ICLUS(I) = 1 DO 2400 L = 2,K IF ( D(L) - F ) 2300,2400,2400 2300 F = D(L) ICLUS(I) = L 2400 CONTINUE IF ( IVERB .EQ. 0) GO TO 2450 WRITE (6,10000) C WRITE (6,12000) (IOTA(J), J=1,N) C WRITE (6,12000) (ICLUS(I),I=1,N) 2450 CONTINUE C DO 2600 IG = 1,K NG(IG) = 0 SUM(IG) = 0.0 SS(IG) = 0.0 SSD(IG) = 0.0 2600 CONTINUE DO 2700 I = 1,N C IGROUP = ICLUS(I) NG(IGROUP) = NG(IGROUP) + 1 SUM(IGROUP) = SUM(IGROUP) + X(I) SS(IGROUP) = SS(IGROUP) + X(I)*X(I) 2700 CONTINUE C IF ( IVERB .EQ. 1) WRITE (6,27000) (NG(IG),IG=1,K) C WGSS = 0.0 2800 CONTINUE C C DO 3100 IG = 1,K IF (NG(IG) .EQ. 0) GO TO 2900 GO TO 3000 2900 WRITE (6,60000) IG GO TO 6600 3000 CONTINUE C C COMPUTE MEAN VECTORS XMEAN(IG) = SUM(IG)/NG(IG) C COMPUTE SUMS-OF-SQUARED DEVIATIONS CF = SUM(IG)*SUM(IG)/NG(IG) SSD(IG) = SS(IG) - CF STDEV(IG) = SQRT( SSD(IG)/NG(IG) ) IF ( IVERB .EQ. 1) WRITE (6,64000) IG,XMEAN(IG),STDEV(IG) 3100 CONTINUE C C C POOL: DO 3200 IG = 1,K WGSS = WGSS + SSD(IG) 3200 CONTINUE C C COMPUTE VARHAT, MLE OF COMMON VARIANCE: VARHAT = WGSS/N 3300 CONTINUE C XLGVAR = DLOG(VARHAT) XN2C = N*(IP*ALOG(2.0*PI) + IP + XLGVAR) XN2D = N*(IP*ALOG(2.0*PI) + IP) DO 3350 IG = 1,K XN2D = XN2D + N*2.0*DLOG(STDEV(IG)) 3350 CONTINUE C C IF (ITER .EQ. 1) GO TO 3600 C C COMPARE NEW SEGMENTATION WITH OLD C DO 3500 I = 1,N C IF (ICLUS(I) .EQ. ICLSOL(I)) GO TO 3500 GO TO 3600 3500 CONTINUE GO TO 6000 3600 CONTINUE C C IF NEW SEGMENTATION DIFFERS FROM OLD, C COMPUTE AND WRITE NEW STATISTICS C DO 3700 IG = 1,K IF ( IVERB .EQ. 1) WRITE (6,26000) IG,XMEAN(IG) 3700 CONTINUE C C COMPUTE TRANSITION PROBABILITY MATRIX: C DO 3800 I1 = 1,K C DO 3800 J = 1,K NT(I1,J) = 0 3800 CONTINUE DO 3900 I = 2,N C IM1 = I-1 C IBEFOR = ICLUS(IM1) C IY = ICLUS(I) NT(IBEFOR,IY) = NT(IBEFOR,IY) + 1 3900 CONTINUE DO 4000 I1 = 1,K C IRSUM(I1) = 0 4000 CONTINUE DO 4100 I1 = 1,K C DO 4100 J = 1,K IRSUM(I1) = IRSUM(I1) + NT(I1,J) 4100 CONTINUE DO 4400 I1=1,K C XDENOM=IRSUM(I1) IF (XDENOM .EQ. 0.0) GO TO 4200 GO TO 4300 4200 XDENOM = K 4300 CONTINUE C DO 4400 J = 1,K XNUM = NT(I1,J) C IF THERE ARE NO TRANSITIONS FROM I1) THEN TP(I1,J) C IS SET EQUAL TO ZERO, FOR ALL J = 1,2,...,K. C 4400 TP(I1,J) = XNUM/XDENOM 4500 CONTINUE C C COMPUTE MARGINAL DISTRIBUTION OF LABELS: DO 4600 IG = 1,K XNG = NG(IG) PROB(IG) = XNG/N 4600 CONTINUE C TRANS = 0.0 DO 4700 I1=1,K C DO 4700 J=1,K ITEST = NT(I1,J) IF (ITEST .EQ. 0) GO TO 4700 IF (TP(I1,J) .EQ. 0.) GO TO 4700 TRANS = TRANS + NT(I1,J)*DLOG(TP(I1,J)) 4700 CONTINUE C TRANS = -2.0*TRANS C C WRITE TRANSITION PROBABILITIES: IF ( IVERB .EQ. 0) GO TO 4850 WRITE (6,13000) WRITE (6,37000) (JOTA(JAY),JAY=1,K) DO 4800 I1 = 1,K C WRITE (6,38000) I1, (NT(I1,J),J=1,K) 4800 CONTINUE IF ( IVERB .EQ. 0) GO TO 4850 WRITE (6,39000) WRITE (6,37000) (JOTA(JAY),JAY=1,K) DO 4900 I1=1,K WRITE (6,40000) I1, (TP(I1,J),J=1,K) 4900 CONTINUE WRITE (6,63000) (PROB(IG),IG=1,K) WRITE (6,32000) TRANS WRITE (6,50000) WRITE (6,22000) XN2C WRITE (6,22500) XN2D 4850 CONTINUE C C ACCOUNT FOR LABEL OF FIRST OBSERVATION: LABEL1 = ICLUS(1) PROBAB = PROB(LABEL1) FIRST = ALOG(PROBAB) FIRST = -2.0*FIRST C C C COMPUTE MODEL SELECTION CRITERIA: C COMPUTE VALUES CORRESPONDING TO NEW SEGMENTATION AND OLD C VARIANCE (OMIT ON FIRST ITERATION) C IF (ITER .EQ. 1) GO TO 5200 C C FOR MODEL WITH COMMON VARIANCE C (NOT OPTIMIZED IN THIS PROGRAM; HOWEVER, IT IS CLEAR C THAT ONE SHOULD USE THE COMMON-VARIANCE MODEL IF C THE VALUES OF THE MODEL SELECTION CRITERIA HERE FOR THAT MODEL C ARE LESS THAN THOSE FOR THE MODEL WITH DIFFERENT COVARIANCE C MATRICES): C AICCOL = XN2COL + TRANS + FIRST + 2.0*NPRMC SCHCOL = XN2COL + TRANS + FIRST + ALOG(XN)*NPRMC IF ( IVERB .EQ. 0 ) GO TO 5200 WRITE (6,59000) NPRMC WRITE (6,46000) AICCOL WRITE (6,47000) SCHCOL 5200 CONTINUE AICC = XN2C + TRANS + FIRST + 2.0*NPRMC AICD = XN2D + TRANS + FIRST + 2.0*NPRMDT IF ( IVERB. EQ. 1 ) WRITE (6,48000) AICC SCHC = XN2C + TRANS + FIRST + ALOG(XN)*NPRMC IF ( IVERB .EQ. 1 ) WRITE (6,49000) SCHC C C COMPUTE PRECISIONS FOR ALL GROUPS. C IP = 1 TERM=0.0 DO 5700 L=1,K IF (NG(L) .GT. IP) GO TO 5300 WRITE (6,52000) L,NG(L) GO TO 5600 5300 CONTINUE C THE VARIABLE A IS TEMP FOR VARIANCE OF GROUP L: A = SSD(L)/NG(L) 5400 CONTINUE C PG(L) = PRECISION (RECIPROCAL VARIANCE) OF GROUP L PG(L) = 1/A 5500 CONTINUE C ET(L) = DLOG(A) C 5600 CONTINUE C TERM = TERM + NG(L)*ET(L) 5700 CONTINUE C COMPUTE MODEL SELECTION CRITERIA WITH DIFFERENT COVARIANCE C MATRICES: C C PARAMETERS: C K MEAN VECTORS OF DIMENSION P AND K P-BY-P COVARIANCE MATRICES, C WHERE P IS THE NUMBER OF VARIABLES XN2D = N*IP*ALOG(2*PI) + N*IP + TERM XN2D = XN2D + TRANS + FIRST SCHD = XN2D + ALOG(XN)*NPRMDT AICD = XN2D + 2.0*NPRMDT IF( IVERB .EQ. 0) GO TO 5750 WRITE (6,23000) WRITE (6,59000) NPRMDT WRITE (6,24000) XM2LLD WRITE (6,57000) AICD WRITE (6,58000) SCHD 5750 CONTINUE C C IF (IVERB .EQ. 1) WRITE(6,66000) NM1=N-1 C DO 6700 I = 1,NM1 IT = I ITP1 = I+1 IF( ICLUS(IT) .EQ. ICLUS(ITP1) ) GO TO 6700 IF(IVERB .EQ. 1) WRITE(6,65000) IT, ICLUS(IT), ICLUS(ITP1) 6700 CONTINUE C C IF (IVERB .EQ. 0) GO TO 5810 WRITE (6,25000) ITER DO 5800 IG = 1,K WRITE (6,21000) IG, XMEAN(IG) 5800 CONTINUE 5810 CONTINUE ITER = ITER + 1 C If 50 iterations already, stop and say so. IF (ITER .GE. 50) GO TO 5900 IF ( ITER .LT. 50 ) GO TO 5825 5825 CONTINUE C UNLESS 50 ITERATIONS HAVE ALREADY BEEN PERFORMED, CHECK FOR C CONVERGENCE. C C If convergence has not yet occurred, GO BACK C TO STMT 900 AND DO ANOTHER ITERATION. C COMPARE NEW RESULTS WITH OLD: C First, compare new means with old by C computing the max relative change (up or down). TEST1 = ABS( XMNOL(1)/XMEAN(1) - 1.0 ) TEST2 = ABS( STDOL(1)/STDEV(1) - 1.0) TEST = AMAX1(TEST1,TEST2) DO 3550 IG = 2,K TEMP1= ABS(XMNOL(IG)/XMEAN(IG) - 1.0 ) TEMP2 = ABS( STDOL(IG)/STDEV(IG) - 1.0) TEMP = AMAX1(TEMP1,TEMP2) IF ( TEMP .GT. TEST ) TEST = TEMP 3550 CONTINUE C "TEST" is greatest relative change in mean or std dev. C If "TEST" is larger than 0.01, go to stmt 900 C to do another iteration. IF ( TEST .GT. 0.01) GO TO 900 C If convergence, go to stmt 6025 and write results C for this value of K. IF ( TEST .LE. 0.01) GO TO 6025 C C GO TO 900 5900 WRITE (6,44000) C C 6000 CONTINUE C You arrive at 6025 if there's been convergence. C You also arrive at 6025 if there hasn't been, C but that fact will have been indicated. C 6025 CONTINUE C C OUTPUT TO BE WRITTEN UPON CONVERGENCE OR REACHING C MAX NO. OF ITERATIONS: C --------------------------------------------------------- C WILL ALSO BE WRITTEN IF NO CONVERGENCE, BUT THAT FACT WILL C HAVE BEEN INDICATED. C C WRITE (6,41000) ITER WRITE (6,27000) (NG(IG),IG=1,K) WRITE (6,30000) C COMPUTE AND WRITE COMMON STD.DEV.: C WGMS = WGSS/N WGMS = SQRT(WGMS) 6100 CONTINUE WRITE (6,31000) WGMS 6200 CONTINUE C WRITE (6,62000) WRITE (6, 53000) TEMP = XN*IP+ALOG(2*PI)+XN*IP+FIRST+TRANS XN2C = TEMP + XN*DLOG(VARHAT) C "TERM" is weighted sum of variances. XN2D = TEMP + TERM AICC = XN2C + 2.0*NPRMC AICD = XN2D + 2.0*NPRMDT SCHC = XN2C + ALOG(XN)*NPRMC SCHD = XN2D + ALOG(XN)*NPRMDT WRITE (6,22000) XN2C WRITE (6,24000) XN2D WRITE (6,51000) AICC WRITE (6,57000) AICD WRITE (6,56000) SCHC WRITE (6,58000) SCHD C COMPUTE CLASS STANDARD DEVIATIONS: DO 6400 L = 1,K WGMS = SSD(L)/(NG(L)-1) WGMS = SQRT(WGMS) 6300 CONTINUE C WRITE (6,61000) L C WRITE (6,31000) WGMS 6400 CONTINUE DO 6450 IG = 1,K WRITE (6,64000) IG,XMEAN(IG),STDEV(IG),NG(IG),PROB(IG) 6450 CONTINUE WRITE (6,38500) WRITE (6,37000) (JOTA(J),J=1,K) DO 6475 IROW = 1,K WRITE (6,39500) IROW, (NT(IROW,J),J=1,K) 6475 CONTINUE WRITE (6,39000) WRITE (6,37000) (JOTA(J),J=1,K) DO 6900 IROW = 1,K WRITE (6,40000) IROW, (TP(IROW,J),J=1,K) 6900 CONTINUE C Write marginal prob vector: WRITE (6,63000) (PROB(IG),IG=1,K) C C (Re-)compute and write sequence history: WRITE(6,66000) NM1=N-1 C ICOUNT = 1 DO 6800 I = 1,NM1 IT = I ITP1 = I+1 IF ( ICLUS(IT) .EQ. ICLUS(ITP1) ) ICOUNT = ICOUNT+1 IF( ICLUS(IT) .EQ. ICLUS(ITP1) ) GO TO 6800 WRITE(6,65000) IT, ICLUS(IT), ICLUS(ITP1), ICOUNT ICOUNT=1 6800 CONTINUE WRITE (6,45000) K C 6500 CONTINUE C 6600 STOP C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C 10000 FORMAT(//1X,'SEGMENTATION:'/) 11000 FORMAT(/1X,'DATA READ IN UNDER FORMAT ',18A4) 12000 FORMAT(1X, (40I3/) ) 13000 FORMAT(//1X,'TRANSITIONS') 14000 FORMAT(1X,'-------------------------------------------------') 15000 FORMAT(3X,I2) 16000 FORMAT(2X,I5) 17000 FORMAT(/,1X,' TSPAC Library in ISOPAC Suite '/ X1X,' PROGRAM TSSG1DT '/ X,1X,' FOR TIME SERIES SEGMENTATION '/ X,1X,' USING GAUSSIAN DISTRIBUTIONS WITH DIFFERENT VARIANCES'/ X,1X,'--------------------------------------------------------'/ X1X,'DEVELOPED AND PROGRAMMED BY '/ X1X,' DR. STANLEY L. SCLOVE 312/996-2681'/ X1X,' IDS DEPT (MC 294) 312/996-2676'/ X1X,' UNIVERSITY OF ILLINOIS AT CHICAGO '/ X1X,' 601 S. MORGAN ST. '/ X1X,' CHICAGO, IL 60607-7124 '/ X1X,'----------------------------------------------------------'/ X1X,'VERSION 1.1 2002: AUG 15 '/ X1X,'---------------------------------------------------------- ') C 18000 FORMAT(2X,I2) 19000 FORMAT(//1X,'K = ',I2,' CLASSES'//) 20000 FORMAT(1X,'INITIAL MEAN FOR CLASS ',I2,': ',(4F14.5/)) 21000 FORMAT(1X,'MEAN FOR CLASS ',I2,': ',(6F11.3/)) 22000 FORMAT(1X,'- 2 LL FOR MODEL WITH COMMON', X' VARIANCE = ', F13.5) 22500 FORMAT(1X,'- 2 LL FOR MODEL WITH DIFFERENT', X' VARIANCES = ', F13.5) 23000 FORMAT(' FOR MODEL WITH DIFFERENT VARIANCES: ') 24000 FORMAT(' -2 LL FOR MODEL WITH DIFFERENT ', X'VARIANCES = ', F13.5) 25000 FORMAT(1X,'ITERATION ', I2) 26000 FORMAT(1X,'MEAN FOR CLASS ',I2,': ',(4F13.5/)) 27000 FORMAT(1X,'NUMBERS IN CLASSES:'/,(9I12/)/) 28000 FORMAT(18A4) 28500 FORMAT(6X,I1) 29000 FORMAT(3X,I2) 30000 FORMAT(1X,'COMMON STD.DEV. (DIVISOR IS DF): ') 31000 FORMAT(1X,(4F13.5/)) 32000 FORMAT(' CONTRIBUTION OF TRANS. PROBS. TO LOG LIKELIHOOD =', XE15.5/) 33000 FORMAT(1X,'SERIES LENGTH = ',I6) 34000 FORMAT(18A4) 35000 FORMAT(18A4) 36000 FORMAT(/9X,(9I7/)) 37000 FORMAT(/5X,(9I7/)) 38000 FORMAT(1X, I4, (9I7/)) 38500 FORMAT(/,1X,'NUMBERS OF TRANSITIONS') 39000 FORMAT(/,1X,'TRANSITION PROBABILITIES') 39500 FORMAT(1X, I4,1X,(9I7/)) 40000 FORMAT(1X, I4,3X,(9F7.4/)) 41000 FORMAT(/1X,'CONVERGENCE: NO CASE CHANGED CLASSES AFTER ', X'ITERATION ',I2,'. RESULTS ARE PRINTED BELOW.'//) 44000 FORMAT(1X,'ROUTINE HAS NOT CONVERGED IN 50 ITERATIONS. STOP') 45000 FORMAT(1X,'PROGRAM ENDED SUCCESSFULLY. IT WAS RUN FOR THE CASE ', X'K = ',I2,'.'/) 46000 FORMAT(1X,'AIC WITH NEW LABELS AND OLD DISTRIBUTIONAL ', X'PARAMETERS: ', F15.5) 47000 FORMAT(1X,'SIC NEW LABELS AND OLD ', X'DISTRIBUTIONAL PARAMETERS: ', F15.5) 48000 FORMAT(1X,'AIC WITH NEW LABELS AND NEW DISTRIBUTIONAL ', X'PARAMETERS: ',F15.5) 49000 FORMAT(1X,'SIC WITH NEW LABELS AND NEW ', X'DISTRIBUTIONAL PARAMETERS: ',F15.5) 50000 FORMAT(1X,'FOR MODEL WITH COMMON VARIANCE ', X'(NOT OPTIMIZED IN THIS PROGRAM): '/) 51000 FORMAT(1X,'AIC FOR MODEL WITH COMMON VARIANCE = ',F15.5) 52000 FORMAT(1X,'CLASS ',I2,' CONTAINS ONLY ',I4,' OBSERVATIONS: ', X'PRECISION MATRIX FROM PREVIOUS ITERATION IS BEING RETAINED'/) 53000 FORMAT(1X,'MODEL WITH COMMON VARIANCE IS NOT'/ X1X,'OPTIMIZED IN THIS PROGRAM; HOWEVER, IT IS CLEAR'/ X1X,'THAT ONE SHOULD USE IT IF HERE THE VALUES OF THE MODEL-'/ X1X,'SELECTION CRITERIA FOR THAT MODEL ARE LESS THAN THOSE '/ X1X,'FOR THE MODEL WITH DIFFERENT VARIANCES,'/ X1X,'WHICH IS OPTIMIZED HERE.'/) 53500 FORMAT(' FIRST FOUR CASES: ') 54000 FORMAT(' SAMPLE MIN AND MAX: ', 2F13.3) 55000 FORMAT(' MIDRANGE = ',13X, F13.3//) 56000 FORMAT(1X,'SIC FOR MODEL WITH COMMON VARIANCE ', X' = ',F15.5) 57000 FORMAT(1X,'AIC FOR MODEL WITH DIFFERENT VARIANCES = ', XF15.5) 58000 FORMAT(1X,'SIC FOR MODEL WITH DIFFERENT ', X'VARIANCES = ', F15.5) 59000 FORMAT(/,1X,'NUMBER OF PARAMETERS = ',I4) 60000 FORMAT(1X,'NO OBSERVATIONS IN GROUP ',I3,'. STOP') 61000 FORMAT(/,1X,'STANDARD DEVIATION FOR CLASS ',I2) 62000 FORMAT(/,1X,'CLASS STANDARD DEVIATIONS ', X' (DIVISORS ARE ONE LESS THAN NUMBER IN GROUP):') 63000 FORMAT(/1X,'MARGINAL PROB.VECTOR:'/,(9F10.3/)) 64000 FORMAT(1X,'GROUP ', I3, ' MEAN ',F9.2,' STDEV ', F9.2, X' NUMBER ',I5,' PROB ',F6.3) 65000 FORMAT(' AT TIME ',I5,' CHANGED FROM ',I2, ' TO ', I2, X' DURATION WAS ',I6) 66000 FORMAT(' SEQUENCE OF CLASS LABELS: '/) 73000 FORMAT(' OUTPUT OPTION CHOSEN: VERBOSE ') 74000 FORMAT(' OUTPUT OPTION CHOSEN: TERSE ') END