statistics-0.10.2.0: A library of statistical types, data, and functions

Portability | portable
Stability | experimental
Maintainer | bos@serpentine.com
Safe Haskell | None

Statistics.Test.KolmogorovSmirnov

Contents

- Kolmogorov-Smirnov test
- Evaluate statistics
- Probablities
- Data types
- References

Description

Kolmogov-Smirnov tests are non-parametric tests for assesing whether given sample could be described by distribution or whether two samples have the same distribution.

Synopsis

- kolmogorovSmirnovTest :: Distribution d => d -> Double -> Sample -> TestResult
- kolmogorovSmirnovTestCdf :: (Double -> Double) -> Double -> Sample -> TestResult
- kolmogorovSmirnovTest2 :: Double -> Sample -> Sample -> TestResult
- kolmogorovSmirnovCdfD :: (Double -> Double) -> Sample -> Double
- kolmogorovSmirnovD :: Distribution d => d -> Sample -> Double
- kolmogorovSmirnov2D :: Sample -> Sample -> Double
- kolmogorovSmirnovProbability :: Int -> Double -> Double
- data TestType
  - = OneTailed
  - | TwoTailed
- data TestResult
  - = Significant
  - | NotSignificant

# Kolmogorov-Smirnov test

kolmogorovSmirnovTest

Arguments

:: Distribution d |
=> d | Distribution
-> Double | p-value
-> Sample | Data sample
-> TestResult |

Check that sample could be described by distribution. `Significant` means distribution is not compatible with data for given p-value.

This test uses Marsaglia-Tsang-Wang exact alogorithm for calculation of p-value.

kolmogorovSmirnovTestCdf

Arguments

:: (Double -> Double) | CDF of distribution
-> Double | p-value
-> Sample | Data sample
-> TestResult |

Variant of `kolmogorovSmirnovTest` which uses CFD in form of function.

kolmogorovSmirnovTest2

Arguments

:: Double | p-value
-> Sample | Sample 1
-> Sample | Sample 2
-> TestResult |

Two sample Kolmogorov-Smirnov test. It tests whether two data samples could be described by the same distribution without making any assumptions about it.

This test uses approxmate formula for computing p-value.

# Evaluate statistics

kolmogorovSmirnovCdfD

Arguments

:: (Double -> Double) | CDF function
-> Sample | Sample
-> Double |

Calculate Kolmogorov's statistic D for given cumulative distribution function (CDF) and data sample. If sample is empty returns 0.

kolmogorovSmirnovD

Arguments

:: Distribution d |
=> d | Distribution
-> Sample | Sample
-> Double |

Calculate Kolmogorov's statistic D for given cumulative distribution function (CDF) and data sample. If sample is empty returns 0.

kolmogorovSmirnov2D

Arguments

:: Sample | First sample
-> Sample | Second sample
-> Double |

Calculate Kolmogorov's statistic D for two data samples. If either of samples is empty returns 0.

# Probablities

kolmogorovSmirnovProbability

Arguments

:: Int | Size of the sample
-> Double | D value
-> Double |

Calculate cumulative probability function for Kolmogorov's distribution with n parameters or probability of getting value smaller than d with n-elements sample.

It uses algorithm by Marsgalia et. al. and provide at least 7-digit accuracy.

# Data types

data TestType

Test type. Exact meaning depends on a specific test. But generally it's tested whether some statistics is too big (small) for `OneTailed` or whether it too big or too small for `TwoTailed`

Constructors

OneTailed |
TwoTailed |

Instances

Eq TestType |
Ord TestType |
Show TestType |
Typeable TestType |

data TestResult

Result of hypothesis testing

Constructors

Significant | Null hypothesis should be rejected
NotSignificant | Data is compatible with hypothesis

Instances

Eq TestResult |
Ord TestResult |
Show TestResult |
Typeable TestResult |

# References

- G. Marsaglia, W. W. Tsang, J. Wang (2003) Evaluating Kolmogorov's distribution, Journal of Statistical Software, American Statistical Association, vol. 8(i18).