45.1 One Sample Kolmogorov-Smirnov Test (.NET, C#, CSharp, VB, Visual Basic, F#)
Class OneSampleKSTest performs a Kolmogorov-Smirnov test of the distribution of one sample. This class compares the distribution of a given sample to the hypothesized distribution defined by a specified cumulative distribution function (CDF). For each potential value x, the Kolmogorov-Smirnov test compares the proportion of values less than x with the expected number predicted by the specified CDF. The null hypothesis is that the given sample data follow the specified distribution. The alternative hypothesis that the data do not have that distribution.
Sample data can be passed to the constructor as a vector, numeric column in a data frame, or an array of doubles. The hypothesized distribution can be specified either by using an instance of ProbabilityDistribution or by supplying a delegate that encapsulates the CDF of the hypothesized distribution. For example, this code creates a OneSampleKSTest instance that compares the distribution of data to a standard normal distribution:
Code Example – C# Kolmogorov-Smirnov test
var norm = new NormalDistribution();
var ks = new OneSampleKSTest( data, norm );
Code Example – VB Kolmogorov-Smirnov test
Dim Norm As New NormalDistribution()
Dim KS As New OneSampleKSTest(Data, Norm)
If myDist.CDF() is the CDF for some distribution, this code creates a OneSampleKSTest instance that compares the distribution of the data in column 3 of DataFrame df to the hypothesized distribution:
Code Example – C# Kolmogorov-Smirnov test
var ks = new OneSampleKSTest( df[3],
new Func<double, double>(myDist.CDF) );
Code Example – VB Kolmogorov-Smirnov test
Dim KS As New OneSampleKSTest(DF(3), New Func(Of Double,
Double)(AddressOf MyDist.CDF))
By default, a OneSampleKSTest object performs the Kolmogorov-Smirnov test with . A different alpha level can be specified at the time of construction using constructor overloads, or after construction using the provided Alpha property.
Once you've constructed and configured a OneSampleKSTest object, you can access the various test results using the provided properties:
Code Example – C# Kolmogorov-Smirnov test
Console.WriteLine( "statistic = " + test.Statistic );
Console.WriteLine( "p-value = " + test.P );
Console.WriteLine( "alpha = " + test.Alpha );
Console.WriteLine( "reject the null hypothesis? " + test.Reject);
Code Example – VB Kolmogorov-Smirnov test
Console.WriteLine("statistic = " & Test.Statistic)
Console.WriteLine("p-value = " & Test.P)
Console.WriteLine("alpha = " & Test.Alpha)
Console.WriteLine("reject the null hypothesis? " & Test.Reject)