在Python中进行Kolmogorov-Smirnov(KS)检验,你可以使用`scipy.stats`模块中的`kstest`函数。下面是一个简单的例子,展示了如何使用`kstest`函数进行KS检验:
from scipy import stats
import numpy as np
生成两个样本数据
data1 = np.random.normal(0, 1, 1000)
data2 = np.random.normal(1, 1, 1000)
进行KS检验
D, p_value = stats.kstest(data1, data2)
print("KS统计量:", D)
print("p值:", p_value)
如果你想要进行单样本KS检验,即检验一个样本是否符合某个已知的分布,可以使用以下代码:
from scipy import stats
import numpy as np
生成一个样本数据
data = np.random.normal(0, 1, 1000)
进行单样本KS检验
D, p_value = stats.kstest(data, 'norm')
print("KS统计量:", D)
print("p值:", p_value)
在上述代码中,`kstest`函数接受两个参数:`rvs`(随机变量样本)和`cdf`(累积分布函数)。`rvs`可以是数组、生成数组的函数或者`scipy.stats`里面理论分布的名字。`cdf`可以与`rvs`一致,或者当`rvs`是数组而`cdf`是理论分布的名字时,`cdf`用于计算理论分布的累积分布函数。
另外,`kstest`函数还可以接受一个名为`args`的元组参数,当`rvs`或者`cdf`是理论分布时,这个参数用来存储理论分布的参数,例如正态分布的`mean`和`std`。
需要注意的是,KS检验是一种非参数检验方法,它不要求数据符合特定的分布形式,因此它对于检验数据是否符合某种分布非常有用。