data=np.随机.多变量_正常(均值=[0,0],cov=[[1,0],[0,1]],大小=1000(
cdfx=多变量正规(均值=[0,0],cov=[[1,0],[0,1]](。cdf
ks_1samp(x=数据,cdf=cdfx(
KstestResult(统计=0.9930935227267083,p值=0.0(
p值不应该高吗?
Kolmogorov-Smirnov检验适用于单变量分布。参见";不止一个维度上的Kolmogorov–Smirnov统计";用于讨论多元泛化。
ks_1samp
期望输入x
是一维的,并且期望cdf
函数是单变量分布的CDF。它不会验证这些属性,因此如果没有达到预期,则行为是未定义的(显然是无稽之谈(。
对于单变量正态分布,它如您所期望的那样工作:
In [20]: from scipy.stats import ks_1samp, norm
In [21]: x = norm.rvs(size=1000)
In [22]: ks_1samp(x, norm.cdf)
Out[22]: KstestResult(statistic=0.025983100250768443, pvalue=0.5011047711453744)