2
我想测试一个值的列表是否均匀分布。我知道Kolmogorov-Smirnov测试是正确的测试。但是,我的结果对我来说没有任何意义。Kolmogorov-Smirnov在非标准化数据的Scipy测试
在下面的代码中,我创建了两个值列表,x是均匀分布的,y是不均匀分布的。
应该发生什么: 我跑SciPy的对x和y,并为X经过p值kstest()时,Y的p值未通过。
发生了什么: 我在x和y上运行scipy的kstest(),x和y的p值都是0.0。
In [1]:
from scipy import stats
import scipy as sp
import numpy as np
import math
import matplotlib.pyplot as plt
%matplotlib inline
In [2]:
x = np.random.uniform(size=1000)
sigma_x = np.std(x)
mean_x = x.mean()
plt.hist(x)
plt.show()
In [3]:
y = x**4
sigma_y = np.std(y)
mean_y = y.mean()
plt.hist(y)
plt.show()
In [4]:
stats.kstest(x, 'uniform', args=(mean_x,sigma_x))
Out[4]:
(0.499, 0.0)
In [5]:
stats.kstest(y, 'uniform', args=(mean_y,sigma_y))
Out[5]:
(0.67400000000000004, 0.0)