在(Y1,Y2)的两个样本Kolmogorov-Smirnov检验中,我想知道Y的临界值,它使KS值最大化(有时称为D)。
但是,ks_2samp
仅返回D
和p-value
。请参阅scipy.stats.ks_2samp¶
。
有没有包可以做两个样本Kolmogorov-Smirnov测试并为我返回一个临界值Y?
答案 0 :(得分:0)
我阅读了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))]
对我有用