本文簡要介紹 python 語言中 scipy.stats.f_oneway
的用法。
用法:
scipy.stats.f_oneway(*samples, axis=0)#
執行one-way ANOVA。
one-way ANOVA 檢驗兩個或多個組具有相同總體均值的原假設。該測試適用於來自兩組或更多組的樣本,可能具有不同的大小。
- sample1, sample2, …: array_like
每組的樣本測量值。必須至少有兩個參數。如果數組是多維的,那麽數組的所有維度都必須相同,除了軸。
- axis: 整數,可選
沿其應用測試的輸入數組的軸。默認值為 0。
- statistic: 浮點數
測試的計算 F 統計量。
- pvalue: 浮點數
F 分布的相關 p 值。
ConstantInputWarning
如果每個輸入數組中的所有值都相同,則引發。在這種情況下,F 統計量是無限的或未定義,因此返回
np.inf
或np.nan
。DegenerateDataWarning
如果任何輸入數組的長度為 0,或者所有輸入數組的長度為 1,則引發。在這些情況下,為 F 統計量和 p 值返回
np.nan
。
參數 ::
返回 ::
警告 ::
注意:
方差分析檢驗具有重要假設,必須滿足這些假設才能使相關 p 值有效。
樣本是獨立的。
每個樣本來自一個正態分布的總體。
各組的總體標準差均相等。此屬性稱為同方差性。
如果這些假設對於給定的一組數據不成立,則仍然可以使用 Kruskal-Wallis H-test (
scipy.stats.kruskal
) 或 Alexander-Govern 測試 (scipy.stats.alexandergovern
),盡管會損失一些功率。每組的長度必須至少為 1,並且必須至少有一組長度大於 1。如果不滿足這些條件,則會生成警告並返回 (
np.nan
,np.nan
)。如果每個組中的所有值都相同,並且至少存在兩個具有不同值的組,則該函數會生成警告並返回 (
np.inf
, 0)。如果所有組中的所有值都相同,則函數會生成警告並返回(
np.nan
、np.nan
)。該算法來自 Heiman [2],pp.394-7。
參考:
[1]R. Lowry,“推理統計的概念和應用”,第 14 章,2014 年,http://vassarstats.net/textbook/
[2]G.W.海曼,“理解研究方法和統計:心理學綜合介紹”,霍頓、米夫林和公司,2001 年。
[3]G.H. McDonald,“生物統計手冊”,One-way ANOVA。 http://www.biostathandbook.com/onewayanova.html
例子:
>>> import numpy as np >>> from scipy.stats import f_oneway
以下是來自五個地點的貽貝 Shell 測量數據 [3](前內收肌疤痕的長度,通過除以長度進行標準化):蒂拉穆克,俄勒岡州;俄勒岡州紐波特;阿拉斯加聖彼得堡;俄羅斯馬加丹;和芬蘭的 Tvarminne,取自 McDonald 等人使用的更大的數據集。 (1991)。
>>> tillamook = [0.0571, 0.0813, 0.0831, 0.0976, 0.0817, 0.0859, 0.0735, ... 0.0659, 0.0923, 0.0836] >>> newport = [0.0873, 0.0662, 0.0672, 0.0819, 0.0749, 0.0649, 0.0835, ... 0.0725] >>> petersburg = [0.0974, 0.1352, 0.0817, 0.1016, 0.0968, 0.1064, 0.105] >>> magadan = [0.1033, 0.0915, 0.0781, 0.0685, 0.0677, 0.0697, 0.0764, ... 0.0689] >>> tvarminne = [0.0703, 0.1026, 0.0956, 0.0973, 0.1039, 0.1045] >>> f_oneway(tillamook, newport, petersburg, magadan, tvarminne) F_onewayResult(statistic=7.121019471642447, pvalue=0.0002812242314534544)
f_oneway
接受多維輸入數組。當輸入是多維的並且軸沒有給出,測試是沿著輸入數組的第一個軸執行的。對於以下數據,進行3次測試,每列一次。>>> a = np.array([[9.87, 9.03, 6.81], ... [7.18, 8.35, 7.00], ... [8.39, 7.58, 7.68], ... [7.45, 6.33, 9.35], ... [6.41, 7.10, 9.33], ... [8.00, 8.24, 8.44]]) >>> b = np.array([[6.35, 7.30, 7.16], ... [6.65, 6.68, 7.63], ... [5.72, 7.73, 6.72], ... [7.01, 9.19, 7.41], ... [7.75, 7.87, 8.30], ... [6.90, 7.97, 6.97]]) >>> c = np.array([[3.31, 8.77, 1.01], ... [8.25, 3.24, 3.62], ... [6.32, 8.81, 5.19], ... [7.48, 8.83, 8.91], ... [8.59, 6.01, 6.07], ... [3.07, 9.72, 7.48]]) >>> F, p = f_oneway(a, b, c) >>> F array([1.75676344, 0.03701228, 3.76439349]) >>> p array([0.20630784, 0.96375203, 0.04733157])
相關用法
- Python SciPy stats.fatiguelife用法及代碼示例
- Python SciPy stats.friedmanchisquare用法及代碼示例
- Python SciPy stats.false_discovery_control用法及代碼示例
- Python SciPy stats.find_repeats用法及代碼示例
- Python SciPy stats.f用法及代碼示例
- Python SciPy stats.fisk用法及代碼示例
- Python SciPy stats.fisher_exact用法及代碼示例
- Python SciPy stats.fligner用法及代碼示例
- Python SciPy stats.foldnorm用法及代碼示例
- Python SciPy stats.fit用法及代碼示例
- Python SciPy stats.foldcauchy用法及代碼示例
- Python SciPy stats.anderson用法及代碼示例
- Python SciPy stats.iqr用法及代碼示例
- Python SciPy stats.genpareto用法及代碼示例
- Python SciPy stats.skewnorm用法及代碼示例
- Python SciPy stats.cosine用法及代碼示例
- Python SciPy stats.norminvgauss用法及代碼示例
- Python SciPy stats.directional_stats用法及代碼示例
- Python SciPy stats.invwishart用法及代碼示例
- Python SciPy stats.bartlett用法及代碼示例
- Python SciPy stats.levy_stable用法及代碼示例
- Python SciPy stats.page_trend_test用法及代碼示例
- Python SciPy stats.itemfreq用法及代碼示例
- Python SciPy stats.exponpow用法及代碼示例
- Python SciPy stats.gumbel_l用法及代碼示例
注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.stats.f_oneway。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。