在两个样本kolmogorov – smirnov测试(y1,y2)的测试中,我想知道y的临界值最大化ks值(有时称为d)。
但是,ks_2samp
仅返回D
和p-value
。请参阅Scipy.stats.ks_2samp¶。
有没有包裹可以进行两个样本Kolmogorov – Smirnov测试,并返回Y的临界值?
我读取scipy.stats.ks_2samp
源代码,然后将其更改为
def ks_2samp_val(data1, data2):
data1 = np.sort(data1)
data2 = np.sort(data2)
n1 = data1.shape[0]
n2 = data2.shape[0]
data_all = np.concatenate([data1, data2])
cdf1 = np.searchsorted(data1, data_all, side='right') / (1.0*n1)
cdf2 = np.searchsorted(data2, data_all, side='right') / (1.0*n2)
return data_all[np.argmax(np.absolute(cdf1 - cdf2))]
对我有用