C*********************************************************** C THIS ROUTINE TESTS WHETHER A SET OF N NUMBERS IN THE UNIT INTERVAL C BEHAVE LIKE A SAMPLE FROM THE UNIFORM(0,1) DISTRIBUTION WITH 'NDF' C DEGREES OF FREEDOM. IF THE N NUMBERS ARE INDEPENDENT, THEN N=NDF. C BUT THE 'DATA' MAY ARISE FROM THE PROBABILITY INTEGRAL TRANSFORMATION C AFTER K PARAMETERS ARE ESTIMATED FROM THE DATA. THE DEGREES OF C FREEDOM ARE THEN NDF = N-K C C NOTATION: C DATA AN ARRAY OF N VALUES IN (0,1.0) C N SAMPLE SIZE C NDF DEGEES OF FREEDOM C INDEX IF INDEX=1 PERFORM TESTS C IF INDEX=2 PLOT IDSTRIBUTIONS C C SUBROUTINES CALLED: PCDF,PLOTF,CHI C C WRITTEN BY DR. KENNETH P. BURNHAM, US FISH AND WILDLIFE C SERVICE, SEPTEMBER 16, 1977 C*********************************************************** SUBROUTINE UTEST (DATA,N,NDF,INDEX) C*********************************************************************** C DECLARATIONS C*********************************************************************** REAL DATA(1) C*********************************************************************** C COMPUTE THE MEAN AND VARIANCE C*********************************************************************** IF (INDEX.EQ.2) GO TO 30 SM=0.0 VAR=0.0 DO 10 I=1,N 10 SM=SM+DATA(I) XN=FLOAT(N) SM=SM/XN DO 20 I=1,N Q=DATA(I)-SM 20 VAR=VAR+Q*Q XNDF=FLOAT(NDF) VAR=VAR/(XNDF-1.0) C*********************************************************************** C PRINT DATA AND STATISTICS C*********************************************************************** WRITE (6,40) (DATA(I),I=1,N) WRITE (6,50) SM,VAR C*********************************************************************** C TEST IF THE MEAN DIFFERS FROM 0.5 C*********************************************************************** T=(SM-0.5)*SQRT(12.0*XNDF) WRITE (6,60) T T=T*T CALL CHI (1,T,PROB) PROB=1.-PROB IF (NDF.GT.9) WRITE (6,70) PROB RETURN C*********************************************************************** C PLOT THE SAMPLE CDF AND THE UNIFORM CDF C*********************************************************************** 30 CALL PCDF (DATA,N,0.0,1.0,1) CALL PLOTF (3) CALL PCDF (DATA,N,0.0,1.0,2) RETURN C*********************************************************************** C FORMAT STATEMENTS C*********************************************************************** C 40 FORMAT (4X,10F7.3) 50 FORMAT (//'0Sample Mean = ',F8.4,6X,'Sample Variance = ',F10.6) 60 FORMAT ('0z-test value that the sample mean = 0.5 is ',F8.4) 70 FORMAT (26X,'Significance level = ',F9.5//) END