简介
Kolmogorov-Smirnov test(KS检验)是一种重要的非参数检验方法,应用非常广泛,比如之前介绍的数据库CMap,其核心算法就是借鉴KS检验。
KS检验是一种统计检验方法,其通过比较两样本的频率分布、或者一个样本的频率分布与特定理论分布(如正态分布)之间的差异大小来推论两个分布是否来自同一分布。
实现方法:
R 代码:
ks.test(x)
#其中x为“a numeric vector of data values”,也就是数值型向量。
Python 代码:
from scipy import stats
stats.kstest(rvs, cdf, args=(),…)
#其中rvs可以是数组、生成数组的函数或者scipy.stats里面理论分布的名字
#cdf可以与rvs一致。若rvs和cdf同是数组,则是比较两数组的分布是否一致;一个是数组,另一个是理论分布的名字,则是看样本是否否和理论分布
#args是一个元组,当rvs或者cds是理论分布时,这个参数用来存储理论分布的参数,如正态分布的mean和std。
遇到的问题:
在实际问题中,有一组大小一万的数组,长这样:
test=[4949.58940397, 4712.41059603, 4426.70198675, 4427.8807947 ,
4695.1192053 , 4929.2384106 , 4403.08609272, 4606.33112583,
4599.23178808, 4523.54966887, 4551.41721854, 4784.89403974,……