Perform a Kolmogorov goodness-of-fit test for 1-d continuous distributions.

Refer to Kolmogorov-Smirnov fitting test.

sample : 2-d sequence of float

Tested sample.

model : Distribution or DistributionFactory

Tested distribution.

level : float, 0 \leq \alpha \leq 1, optional

This is the risk \alpha of committing a Type I error, that is an incorrect rejection of a true null hypothesis.

n_parameters : int, 0 \leq k, optional

The number of parameters in the distribution that have been estimated from the sample. This parameter must not be provided if a DistributionFactory was provided as the second argument (it will internally be set to the number of parameters estimated by the DistributionFactory). It can be specified if a Distribution was provided as the second argument, but if it is not, it will be set equal to 0.

test_result : TestResult

Test result.

TypeError : If the distribution is not continuous or if the sample is



The present implementation of the Kolmogorov goodness-of-fit test is two-sided. This uses an external C implementation of the Kolmogorov cumulative distribution function by [Simard2011]. If it is called with a distribution, it is supposed to be fully specified ie no parameter has been estimated from the given sample. Otherwise, the distribution is estimated using the given factory based on the given sample and the distribution of the test statistics is estimated using a Monte Carlo approach (see the FittingTest-KolmogorovSamplingSize key in ResourceMap).


>>> import openturns as ot
>>> ot.RandomGenerator.SetSeed(0)
>>> distribution = ot.Normal()
>>> sample = distribution.getSample(30)
>>> ot.FittingTest.Kolmogorov(sample, ot.NormalFactory(), 0.01)
class=TestResult name=Unnamed type=KolmogorovDistribution binaryQualityMeasure=true p-value threshold=0.01 p-value=0.7 description=[Normal(mu = -0.0944924, sigma = 0.989808) vs sample Normal]