numpy.random.RandomState.f#
方法
- random.RandomState.f(dfnum, dfden, size=None)#
從 F 分佈中抽取樣本。
樣本是從具有指定參數 dfnum (分子自由度) 和 dfden (分母自由度) 的 F 分佈中抽取的,其中兩個參數都必須大於零。
F 分佈(也稱為 Fisher 分佈)的隨機變數是一種連續機率分佈,出現在變異數分析檢定中,並且是兩個卡方變數的比率。
- 參數:
- dfnumfloat 或 float 的類陣列 (array_like)
分子自由度,必須 > 0。
- dfdenfloat 或 float 的類陣列 (array_like)
分母自由度,必須 > 0。
- sizeint 或 int 元組,選用
輸出形狀。如果給定的形狀是例如
(m, n, k)
,則會抽取m * n * k
個樣本。如果 size 是None
(預設值),如果dfnum
和dfden
都是純量,則會傳回單一值。否則,會抽取np.broadcast(dfnum, dfden).size
個樣本。
- 返回:
- outndarray 或 純量
從參數化的 Fisher 分佈中抽取的樣本。
另請參閱
scipy.stats.f
機率密度函數、分佈或累積密度函數等。
random.Generator.f
新程式碼應使用此方法。
註解
F 統計量用於比較組內變異數與組間變異數。分佈的計算取決於抽樣,因此它是問題中各自自由度的函數。dfnum 變數是樣本數減一,即組間自由度,而 dfden 是組內自由度,即每組樣本數之和減去組數。
參考文獻
[1]Glantz, Stanton A. “生物統計學入門”, McGraw-Hill, 第五版, 2002。
[2]Wikipedia, “F-distribution”, https://en.wikipedia.org/wiki/F-distribution
範例
Glantz[1], pp 47-40 中的範例
兩組,糖尿病兒童(25 人)和非糖尿病患者的兒童(25 個對照組)。測量空腹血糖,病例組的平均值為 86.1,對照組的平均值為 82.2。標準差分別為 2.09 和 2.49。這些資料是否與父母糖尿病狀況不影響其子女血糖水平的虛無假設一致?從資料計算 F 統計量,得到值為 36.01。
從分佈中抽取樣本
>>> dfnum = 1. # between group degrees of freedom >>> dfden = 48. # within groups degrees of freedom >>> s = np.random.f(dfnum, dfden, 1000)
頂部 1% 樣本的下限是
>>> np.sort(s)[-10] 7.61988120985 # random
因此,F 統計量超過 7.62 的機率約為 1%,測量值為 36,因此在 1% 水準上拒絕虛無假設。