scipy.stats.anderson_ksamp¶
- scipy.stats.anderson_ksamp(samples, midrank=True)[源代码]¶
k样本的Anderson-Darling检验。
k样本Anderson-Darling检验是单样本Anderson-Darling检验的修正。它检验零假设,即k个样本取自同一总体,而不必指定该总体的分布函数。临界值取决于样本数。
- 参数
- samples一维类阵列序列
数组中的样本数据数组。
- midrank布尔值,可选
计算的Anderson-Darling检验的类型。默认值(True)是适用于连续和离散总体的中级检验。如果为False,则使用右侧经验分布。
- 退货
- statistic浮动
归一化k样本Anderson-Darling检验统计量。
- critical_values阵列
显著性水平为25%、10%、5%、2.5%、1%、0.5%、0.1%的临界值。
- significance_level浮动
可以拒绝所提供样本的零假设的近似显著性水平。该值被封底/上限为0.1%/25%。
- 加薪
- ValueError
如果提供的样本少于2个,则样本为空,或者样本中没有不同的观测。
注意事项
[1] 定义了k样本Anderson-Darling检验的三个版本:一个用于连续分布,两个用于离散分布,其中样本之间可能出现联系。此例程的默认设置是基于中级经验分布函数计算版本。这项测试适用于连续和离散数据。如果MIDRANK设置为FALSE,则右侧经验分布用于离散数据的测试。根据 [1], 如果测试中由于舍入错误导致的一些冲突没有针对样本之间的关系进行调整,则两个离散的测试统计数据仅略有不同。
对应于从0.01到0.25的显著性水平的临界值取自 [1]. p值设置为0.1%/25%为底值/上限为0.1%/25%。由于未来版本中可能会扩展临界值范围,因此建议不要测试
p == 0.25
,而是更确切地说p >= 0.25
(下限类似)。0.14.0 新版功能.
参考文献
示例
>>> from scipy import stats >>> rng = np.random.default_rng()
两个随机样本来自相同分布的零假设可以在5%时被拒绝,因为返回的测试值大于5%时的临界值(1.961),但不大于2.5%时的临界值。插值给出了3.2%的近似显著性水平:
>>> stats.anderson_ksamp([rng.normal(size=50), ... rng.normal(loc=0.5, size=30)]) (1.974403288713695, array([0.325, 1.226, 1.961, 2.718, 3.752, 4.592, 6.546]), 0.04991293614572478)
对于来自相同分布的三个样本,不能拒绝零假设。报告的p值(25%)已设置上限,可能不太准确(因为它对应于值0.449,而统计数据为-0.731):
>>> stats.anderson_ksamp([rng.normal(size=50), ... rng.normal(size=30), rng.normal(size=20)]) (-0.29103725200789504, array([ 0.44925884, 1.3052767 , 1.9434184 , 2.57696569, 3.41634856, 4.07210043, 5.56419101]), 0.25)