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


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


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

用法:

scipy.stats.cramervonmises_2samp(x, y, method='auto')#

执行两个样本 Cramér-von Mises 检验拟合优度。

这是 Cramér-von Mises 检验 ([1]) 的两个样本版本:对于两个独立样本 ,零假设是样本来自相同(未指定)连续分布。

参数

x array_like

随机变量 的观察值的一维数组。

y array_like

随机变量 的观察值的一维数组。

method {‘auto’, ‘asymptotic’, ‘exact’},可选

用于计算 p 值的方法,请参阅注释了解详细信息。默认为‘auto’。

返回

res 具有属性的对象
统计 浮点数

Cramér-von Mises 统计量。

p值 浮点数

p 值。

注意

统计量根据公式 9 计算[2]。 p 值的计算取决于关键字方法

  • asymptotic:p 值是通过使用检验统计量的极限分布来近似的。

  • exact:精确的 p 值是通过枚举检验统计量的所有可能组合来计算的,请参阅 [2]。

如果是 method='auto' ,如果两个样本都包含等于或小于 20 个观测值,则使用精确方法,否则使用渐近分布。

如果基础分布不连续,则 p 值可能是保守的([3] 中的第 6.2 节)。对数据进行排序以计算检验统计量时,如果存在平局,则使用中位。

参考

[2] (1,2)

安德森,T.W. (1962)。关于二样本 Cramer-von-Mises 标准的分布。 《数理统计年鉴》,第 1148-1159 页。

[3]

Conover, W.J.,实用非参数统计,1971 年。

例子

假设我们希望测试由scipy.stats.norm.rvs 生成的两个样本是否具有相同的分布。我们选择 alpha=0.05 的显著性水平。

>>> import numpy as np
>>> from scipy import stats
>>> rng = np.random.default_rng()
>>> x = stats.norm.rvs(size=100, random_state=rng)
>>> y = stats.norm.rvs(size=70, random_state=rng)
>>> res = stats.cramervonmises_2samp(x, y)
>>> res.statistic, res.pvalue
(0.29376470588235293, 0.1412873014573014)

p 值超出了我们选择的显著性水平,因此我们不拒绝观察到的样本来自同一分布的原假设。

对于小样本量,可以计算精确的 p 值:

>>> x = stats.norm.rvs(size=7, random_state=rng)
>>> y = stats.t.rvs(df=2, size=6, random_state=rng)
>>> res = stats.cramervonmises_2samp(x, y, method='exact')
>>> res.statistic, res.pvalue
(0.197802197802198, 0.31643356643356646)

即使样本量很小,基于渐近分布的 p 值也是一个很好的近似值。

>>> res = stats.cramervonmises_2samp(x, y, method='asymptotic')
>>> res.statistic, res.pvalue
(0.197802197802198, 0.2966041181527128)

与方法无关,在此示例中,不会拒绝所选显著性水平的原假设。

相关用法


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