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


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