当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy stats.ansari用法及代码示例


本文简要介绍 python 语言中 scipy.stats.ansari 的用法。

用法:

scipy.stats.ansari(x, y, alternative='two-sided')#

对等比例参数执行Ansari-Bradley 测试。

Ansari-Bradley 测试([1],[2]) 是对抽取两个样本的分布的尺度参数是否相等的非参数检验。原假设表明,基础分布的比例x到底层分布的规模y是 1。

参数

x, y array_like

样本数据数组。

alternative {‘双面’,‘less’, ‘greater’},可选

定义备择假设。默认为“双面”。可以使用以下选项:

  • ‘双面’:鳞片比例不等于1。

  • ‘less’:比例小于1。

  • ‘greater’:比例比例大于1。

返回

statistic 浮点数

Ansari-Bradley 检验统计量。

pvalue 浮点数

假设检验的 p 值。

注意

当样本量均小于 55 并且不存在联系时,给出的 p 值是精确的,否则使用 p 值的正态近似值。

参考

[1]

Ansari, A. R. 和 Bradley, R. A. (1960) Rank-sum 分散测试,数理统计年鉴,31,1174-1189。

[2]

Sprent、Peter 和 N.C. Smeeton。应用非参数统计方法。第三版。查普曼和霍尔/CRC。 2001. 第 5.8.2 节。

[3]

Nathaniel E. Helwig “非参数色散和等式检验”,位于http://users.stat.umn.edu/~helwig/notes/npde-Notes.pdf

例子

>>> import numpy as np
>>> from scipy.stats import ansari
>>> rng = np.random.default_rng()

对于这些示例,我们将创建三个随机数据集。前两个,大小为 35 和 25,取自均值为 0,标准差为 2 的正态分布。第三个数据集大小为 25,取自标准差为 1.25 的正态分布。

>>> x1 = rng.normal(loc=0, scale=2, size=35)
>>> x2 = rng.normal(loc=0, scale=2, size=25)
>>> x3 = rng.normal(loc=0, scale=1.25, size=25)

首先我们申请ansarix1x2.这些样本来自相同的分布,因此我们预计Ansari-Bradley 测试不应导致我们得出分布的尺度不同的结论。

>>> ansari(x1, x2)
AnsariResult(statistic=541.0, pvalue=0.9762532927399098)

当 p 值接近 1 时,我们无法得出尺度存在显著差异的结论(如预期)。

现在将测试应用于 x1 和 x3:

>>> ansari(x1, x3)
AnsariResult(statistic=425.0, pvalue=0.0003087020407974518)

在等尺度的原假设下,观察到这样一个统计量极值的概率仅为 0.03087%。我们将此作为反对零假设的证据,支持替代方案:抽取样本的分布规模不相等。

我们可以使用选择参数来执行 one-tailed 测试。在上面的例子中,规模x1大于x3所以比例的比例x1x3大于 1。这意味着 p 值alternative='greater'应该接近 0,因此我们应该能够拒绝原假设:

>>> ansari(x1, x3, alternative='greater')
AnsariResult(statistic=425.0, pvalue=0.0001543510203987259)

正如我们所看到的,p 值确实相当低。因此,使用 alternative='less' 应产生较大的 p 值:

>>> ansari(x1, x3, alternative='less')
AnsariResult(statistic=425.0, pvalue=0.9998643258449039)

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.ansari。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。