在python中的两个样本Kolmogorov-Smirnov检验中获得Y的临界值

时间:2017-09-04 03:43:35

标签: python statistics statsmodels kolmogorov-smirnov

在(Y1,Y2)的两个样本Kolmogorov-Smirnov检验中,我想知道Y的临界值,它使KS值最大化(有时称为D)。

但是,ks_2samp仅返回Dp-value。请参阅scipy.stats.ks_2samp¶

有没有包可以做两个样本Kolmogorov-Smirnov测试并为我返回一个临界值Y?

1 个答案:

答案 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))]

对我有用