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

Refer to Kolmogorov-Smirnov fitting test.

sample2-d sequence of float

Tested sample.

modelDistribution or DistributionFactory

Tested distribution.

levelfloat, 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_parametersint, 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.


Estilmated distribution (if model is of type DistributionFactory).


Test result.

TypeErrorIf 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)
>>> fitted_dist, test_result = ot.FittingTest.Kolmogorov(sample, ot.NormalFactory(), 0.01)
>>> test_result
class=TestResult name=Unnamed type=Kolmogorov Normal binaryQualityMeasure=true p-value threshold=0.01 p-value=0.7 statistic=0.106933 description=[Normal(mu = -0.0944924, sigma = 0.989808) vs sample Normal]