當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。