>  Docs Center  >  Libraries  >  ASTROLIB  >  KUIPERONE






      Compute the one-sided Kuiper statistic (invariant Kolmogorov-Smirnov)


      Returns the Kuiper statistic and associated probability
      for an array of data values and a user-supplied cumulative distribution
      function (CDF) of a single variable. Algorithm adapted from KSONE
      in "Numerical Recipes" by Press et al. 2nd edition (1992)
      Kuiper's test is especially useful for data defined on a circle or
      to search for periodicity (see Paltani 2004, A&A, 420, 789).

Calling Sequence

      kuiperone, data, func_name, D, prob, [ /PLOT ]

Input Parameters

      data - vector of data values, must contain at least 4 elements for the
              Kuiper statistic to be meaningful
      func_name - scalar string giving the name of the cumulative distribution
              function. The function must be defined to accept the data
              vector as its only input (see example).

Output Parameters

      D - floating scalar giving the Kuiper statistic. It
              specifies the sum of positive and negative deviations between the
              cumulative distribution of the data and the supplied function
      prob - floating scalar between 0 and 1 giving the significance level of
              the Kuiper statistic. Small values of PROB show that the
              cumulative distribution function of DATA is significantly
              different from FUNC_NAME.

Optional Input Keyword

      /PLOT - If this keyword is set and non-zero, then KUIPERONE will display a
              plot of the CDF of the data with the supplied function
              superposed. The data values where the Kuiper statistic is
              computed (i.e. at the maximum difference between the data CDF
              and the function) are indicated by vertical dashed lines.
              KUIPERONE accepts the _EXTRA keyword, so that most plot keywords
              (e.g. TITLE, XTITLE, XSTYLE) can also be passed to KUIPERONE.


      Determine if a vector created by the RANDOMN function is really
      consistent with a Gaussian distribution.
      The CDF of a Gaussian is the error function except that a factor
      of 2 is included in the error function. So we must create a special
      function gauss_cdf, x
      return, errorf( x/sqrt(2) )
      IDL> data = randomn(seed, 50) ;create data array to be tested
      IDL> kuiperone, data, 'gauss_pdf', D, prob, /PLOT ;Use Kuiper test
      A small value of PROB indicates that the cumulative distribution of
      DATA is significantly different from a Gaussian


      Note that the 2nd (1992) edition of Numerical Recipes includes
      a more accurate computation of the K-S significance for small
      values of N.

Procedure Calls

      procedure PROB_KUIPER - computes significance of Kuiper distribution

Revision History

      Written W. Landsman August, 1992
      Accept _EXTRA keywords W. Landsman September, 1995
      Fixed possible bug in plot display showing position maximum difference
      in histogram M. Fardal/ W. Landsman March, 1997
      Adapted from KSONE J. Ballet July 2003
      Use Coyote graphics W. Landsman Feb 2011

© 2020 Harris Geospatial Solutions, Inc. |  Legal
My Account    |    Store    |    Contact Us