scipy.stats.

epps_singleton_2samp#

scipy.stats.epps_singleton_2samp(x, y, t=(0.4, 0.8), *, axis=0, nan_policy='propagate', keepdims=False)[source]#

计算 Epps-Singleton (ES) 检验统计量。

检验两个样本是否具有相同的潜在概率分布的零假设。

参数:
x, y类数组

要检验的两个观测样本。输入不能超过一个维度。样本可以有不同的长度,但都必须至少有五个观测值。

t类数组,可选

将评估经验特征函数的点 (t1, …, tn)。它应该是正的不同的数字。默认值 (0.4, 0.8) 在 [1] 中提出。

axisint 或 None,默认值:0

如果为 int,则为计算统计量时输入沿用的轴。输入的每个轴切片(例如行)的统计量将出现在输出的相应元素中。如果为 None,则将在计算统计量之前将输入展平。

nan_policy{‘propagate’, ‘omit’, ‘raise’}

定义如何处理输入 NaN。

  • propagate: 如果在计算统计量时轴切片(例如行)中存在 NaN,则输出的相应条目将为 NaN。

  • omit: 在执行计算时将省略 NaN。如果在计算统计量时轴切片中剩余的数据不足,则输出的相应条目将为 NaN。

  • raise: 如果存在 NaN,将引发 ValueError

keepdimsbool,默认值:False

如果设置为 True,则缩减的轴将保留在结果中,作为大小为 1 的维度。使用此选项,结果将针对输入数组正确广播。

返回:
statisticfloat

检验统计量。

pvaluefloat

基于渐近卡方分布的相关 p 值。

另请参阅

ks_2samp, anderson_ksamp

注释

检验两个样本是否由相同的底层分布生成是统计学中的一个经典问题。一种广泛使用的检验是 Kolmogorov-Smirnov (KS) 检验,它依赖于经验分布函数。Epps 和 Singleton 在 [1] 中引入了一种基于经验特征函数的检验。

与 KS 检验相比,ES 检验的一个优点是它不假设连续分布。在 [1] 中,作者得出结论,该检验在许多示例中也比 KS 检验具有更高的功效。他们建议对离散样本以及每个至少有 25 个观测值的连续样本使用 ES 检验,而建议在连续情况下对较小的样本大小使用anderson_ksamp

p 值是从检验统计量的渐近分布计算得出的,该统计量服从 chi2 分布。如果 xy 的样本大小都小于 25,则将 [1] 中提出的小样本校正应用于检验统计量。

t 的默认值在 [1] 中通过考虑各种分布并找到通常导致检验具有高功效的良好值来确定。[1] 中的表 III 给出了在该研究中测试的分布的最佳值。t 的值由四分位距乘以 0.5 进行缩放,请参阅 [1]

从 SciPy 1.9 开始,在执行计算之前,np.matrix 输入(不推荐用于新代码)将转换为 np.ndarray。在这种情况下,输出将是一个标量或具有适当形状的 np.ndarray,而不是 2D np.matrix。类似地,虽然会忽略掩码数组的掩码元素,但输出将是一个标量或 np.ndarray,而不是 mask=False 的掩码数组。

参考文献

[1] (1,2,3,4,5,6,7)

T. W. Epps 和 K. J. Singleton,“使用经验特征函数解决双样本问题的综合检验”,Journal of Statistical Computation and Simulation 26, p. 177–203, 1986。

[2]

S. J. Goerg 和 J. Kaiser,“分布的非参数检验 - 使用经验特征函数的 Epps-Singleton 双样本检验”,The Stata Journal 9(3), p. 454–465, 2009。