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)