home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / DOOG / PCSSP2.ZIP / STATNONP.ZIP / KOLMO.FOR < prev    next >
Text File  |  1985-11-29  |  7KB  |  176 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE KOLMO
  5. C
  6. C        PURPOSE
  7. C           TESTS THE DIFFERENCE BETWEEN EMPIRICAL AND THEORETICAL
  8. C           DISTRIBUTIONS  USING THE KOLMOGOROV-SMIRNOV TEST
  9. C
  10. C        USAGE
  11. C           CALL KOLMO(X,N,Z,PROB,IFCOD,U,S,IER)
  12. C
  13. C        DESCRIPTION OF PARAMETERS
  14. C           X    - INPUT VECTOR OF N INDEPENDENT OBSERVATIONS.  ON
  15. C                  RETURN FROM KOLMO, X HAS BEEN SORTED INTO A
  16. C                  MONOTONIC NON-DECREASING SEQUENCE.
  17. C           N    - NUMBER OF OBSERVATIONS IN X
  18. C           Z    - OUTPUT VARIABLE CONTAINING THE GREATEST VALUE WITH
  19. C                  RESPECT TO X OF  SQRT(N)*ABS(FN(X)-F(X)) WHERE
  20. C                  F(X) IS A  THEORETICAL DISTRIBUTION FUNCTION AND
  21. C                  FN(X) AN EMPIRICAL DISTRIBUTION FUNCTION.
  22. C           PROB - OUTPUT VARIABLE CONTAINING THE PROBABILITY OF
  23. C                  THE STATISTIC BEING GREATER THAN OR EQUAL TO Z IF
  24. C                  THE HYPOTHESIS THAT X IS FROM THE DENSITY UNDER
  25. C                  CONSIDERATION IS TRUE.  E.G., PROB = 0.05 IMPLIES
  26. C                  THAT ONE CAN REJECT THE NULL HYPOTHESIS THAT THE SET
  27. C                  X IS FROM THE DENSITY UNDER CONSIDERATION WITH 5 PER
  28. C                  CENT PROBABILITY OF BEING INCORRECT.  PROB = 1. -
  29. C                  SMIRN(Z).
  30. C           IFCOD- A CODE DENOTING THE PARTICULAR THEORETICAL
  31. C                  PROBABILITY DISTRIBUTION FUNCTION BEING CONSIDERED.
  32. C                  = 1---F(X) IS THE NORMAL PDF.
  33. C                  = 2---F(X) IS THE EXPONENTIAL PDF.
  34. C                  = 3---F(X) IS THE CAUCHY PDF.
  35. C                  = 4---F(X) IS THE UNIFORM PDF.
  36. C                  = 5---F(X) IS USER SUPPLIED.
  37. C           U    - WHEN IFCOD IS 1 OR 2, U IS THE MEAN OF THE DENSITY
  38. C                  GIVEN ABOVE.
  39. C                  WHEN IFCOD IS 3, U IS THE MEDIAN OF THE CAUCHY
  40. C                  DENSITY.
  41. C                  WHEN IFCOD IS 4, U IS THE LEFT ENDPOINT OF THE
  42. C                  UNIFORM DENSITY.
  43. C                  WHEN IFCOD IS 5, U IS USER SPECIFIED.
  44. C           S    - WHEN IFCOD IS 1 OR 2, S IS THE STANDARD DEVIATION OF
  45. C                  DENSITY GIVEN ABOVE, AND SHOULD BE POSITIVE.
  46. C                  WHEN IFCOD IS 3, U - S SPECIFIES THE FIRST QUARTILE
  47. C                  OF THE CAUCHY DENSITY.  S SHOULD BE NON-ZERO.
  48. C                  IF IFCOD IS 4, S IS THE RIGHT ENDPOINT OF THE UNIFORM
  49. C                  DENSITY.  S SHOULD BE GREATER THAN U.
  50. C                  IF IFCOD IS 5, S IS USER SPECIFIED.
  51. C           IER  - ERROR INDICATOR WHICH IS NON-ZERO IF S VIOLATES ABOVE
  52. C                  CONVENTIONS.  ON RETURN NO TEST HAS BEEN MADE, AND X
  53. C                  AND Y HAVE BEEN SORTED INTO MONOTONIC NON-DECREASING
  54. C                  SEQUENCES.  IER IS SET TO ZERO ON ENTRY TO KOLMO.
  55. C                  IER IS CURRENTLY SET TO ONE IF THE USER-SUPPLIED PDF
  56. C                  IS REQUESTED FOR TESTING.  THIS SHOULD BE CHANGED
  57. C                  (SEE REMARKS) WHEN SOME PDF IS SUPPLIED BY THE USER.
  58. C
  59. C        REMARKS
  60. C           N SHOULD BE GREATER THAN OR EQUAL TO 100.  (SEE THE
  61. C           MATHEMATICAL DESCRIPTION GIVEN FOR THE PROGRAM SMIRN,
  62. C           CONCERNING ASYMPTOTIC FORMULAE)  ALSO, PROBABILITY LEVELS
  63. C           DETERMINED BY THIS PROGRAM WILL NOT BE CORRECT IF THE
  64. C           SAME SAMPLES ARE USED TO ESTIMATE PARAMETERS FOR THE
  65. C           CONTINUOUS DISTRIBUTIONS WHICH ARE USED IN THIS TEST.
  66. C           (SEE THE MATHEMATICAL DESCRIPTION FOR THIS PROGRAM)
  67. C           F(X) SHOULD BE A CONTINUOUS FUNCTION.
  68. C           ANY USER SUPPLIED CUMULATIVE PROBABILITY DISTRIBUTION
  69. C           FUNCTION SHOULD BE CODED BEGINNING WITH STATEMENT 26 BELOW,
  70. C           AND SHOULD RETURN TO STATEMENT 27.
  71. C
  72. C           DOUBLE PRECISION USAGE---IT IS DOUBTFUL THAT THE USER WILL
  73. C           WISH TO PERFORM THIS TEST USING DOUBLE PRECISION ACCURACY.
  74. C           IF ONE WISHES TO COMMUNICATE WITH KOLMO IN A DOUBLE
  75. C           PRECISION PROGRAM, HE SHOULD CALL THE FORTRAN SUPPLIED
  76. C           PROGRAM SNGL(X) PRIOR TO CALLING KOLMO, AND CALL THE
  77. C           FORTRAN SUPPLIED PROGRAM DBLE(X) AFTER EXITING FROM KOLMO.
  78. C           (NOTE THAT SUBROUTINE SMIRN DOES HAVE DOUBLE PRECISION
  79. C           CAPABILITY AS SUPPLIED BY THIS PACKAGE.)
  80. C
  81. C
  82. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  83. C           SMIRN, NDTR, AND ANY USER SUPPLIED SUBROUTINES REQUIRED.
  84. C
  85. C        METHOD
  86. C           FOR REFERENCE, SEE (1) W. FELLER--ON THE KOLMOGOROV-SMIRNOV
  87. C           LIMIT THEOREMS FOR EMPIRICAL DISTRIBUTIONS--
  88. C           ANNALS OF MATH. STAT., 19, 1948.  177-189,
  89. C           (2) N. SMIRNOV--TABLE FOR ESTIMATING THE GOODNESS OF FIT
  90. C           OF EMPIRICAL DISTRIBUTIONS--ANNALS OF MATH. STAT., 19,
  91. C           1948.  279-281.
  92. C           (3) R. VON MISES--MATHEMATICAL THEORY OF PROBABILITY AND
  93. C           STATISTICS--ACADEMIC PRESS, NEW YORK, 1964.  490-493,
  94. C           (4) B.V. GNEDENKO--THE THEORY OF PROBABILITY--CHELSEA
  95. C           PUBLISHING COMPANY, NEW YORK, 1962.  384-401.
  96. C
  97. C     ..................................................................
  98. C
  99.       SUBROUTINE KOLMO(X,N,Z,PROB,IFCOD,U,S,IER)
  100.       DIMENSION X(1)
  101. C
  102. C          NON DECREASING ORDERING OF X(I)'S  (DUBY METHOD)
  103. C
  104.       IER=0
  105.       DO 5 I=2,N
  106.       IF(X(I)-X(I-1))1,5,5
  107.     1 TEMP=X(I)
  108.       IM=I-1
  109.       DO 3 J=1,IM
  110.       L=I-J
  111.       IF(TEMP-X(L))2,4,4
  112.     2 X(L+1)=X(L)
  113.     3 CONTINUE
  114.       X(1)=TEMP
  115.       GO TO 5
  116.     4 X(L+1)=TEMP
  117.     5 CONTINUE
  118. C
  119. C           COMPUTES MAXIMUM DEVIATION DN IN ABSOLUTE VALUE BETWEEN
  120. C           EMPIRICAL AND THEORETICAL DISTRIBUTIONS
  121. C
  122.       NM1=N-1
  123.       XN=N
  124.       DN=0.0
  125.       FS=0.0
  126.       IL=1
  127.     6 DO 7  I=IL,NM1
  128.       J=I
  129.       IF(X(J)-X(J+1))9,7,9
  130.     7 CONTINUE
  131.     8 J=N
  132.     9 IL=J+1
  133.       FI=FS
  134.       FS=FLOAT(J)/XN
  135.       IF(IFCOD-2)10,13,17
  136.    10 IF(S)11,11,12
  137.    11 IER=1
  138.       GO TO 29
  139.    12 Z =(X(J)-U)/S
  140.       CALL NDTR(Z,Y,D)
  141.       GO TO 27
  142.    13 IF(S)11,11,14
  143.    14 Z=(X(J)-U)/S+1.0
  144.       IF(Z)15,15,16
  145.    15 Y=0.0
  146.       GO TO 27
  147.    16 Y=1.-EXP(-Z)
  148.       GO TO 27
  149.    17 IF(IFCOD-4)18,20,26
  150.    18 IF(S)19,11,19
  151.    19 Y=ATAN((X(J)-U)/S)*0.3183099+0.5
  152.       GO TO 27
  153.    20 IF(S-U)11,11,21
  154.    21 IF(X(J)-U)22,22,23
  155.    22 Y=0.0
  156.       GO TO 27
  157.    23 IF(X(J)-S)25,25,24
  158.    24 Y=1.0
  159.       GO TO 27
  160.    25 Y=(X(J)-U)/(S-U)
  161.       GO TO 27
  162.    26 IER=1
  163.       GO TO 29
  164.    27 EI=ABS(Y-FI)
  165.       ES=ABS(Y-FS)
  166.       DN=AMAX1(DN,EI,ES)
  167.       IF(IL-N)6,8,28
  168. C
  169. C           COMPUTES Z=DN*SQRT(N)  AND  PROBABILITY
  170. C
  171.    28 Z=DN*SQRT(XN)
  172.       CALL SMIRN(Z,PROB)
  173.       PROB=1.0-PROB
  174.    29 RETURN
  175.       END
  176.