numpy.random.f#

random.f(dfnum, dfden, size=None)#

從 F 分佈中抽取樣本。

樣本是從具有指定參數 dfnum (分子自由度) 和 dfden (分母自由度) 的 F 分佈中抽取的,其中兩個參數都必須大於零。

F 分佈(也稱為費雪分佈)的隨機變數是一種連續機率分佈,出現在 ANOVA 檢定中,並且是兩個卡方變數的比率。

注意

新程式碼應使用 f 方法,此方法屬於 Generator 實例;請參閱快速入門

參數:
dfnumfloat 或 float 的類陣列 (array_like)

分子自由度,必須 > 0。

dfdenfloat 或 float 的類陣列 (array_like)

分母自由度,必須 > 0。

sizeint 或 int 元組,選用

輸出形狀。如果給定的形狀是,例如 (m, n, k),則會抽取 m * n * k 個樣本。如果 size 為 None (預設值),如果 dfnumdfden 都是純量,則會傳回單一值。否則,會抽取 np.broadcast(dfnum, dfden).size 個樣本。

傳回值:
outndarray 或 純量

從參數化的費雪分佈中抽取的樣本。

另請參閱

scipy.stats.f

機率密度函數、分佈或累積密度函數等。

random.Generator.f

新程式碼應使用此方法。

註解

F 統計量用於比較組內變異數與組間變異數。分佈的計算取決於抽樣,因此它是問題中各自自由度的函數。變數 dfnum 是樣本數減一,即組間自由度,而 dfden 是組內自由度,即每組樣本數減去組數的總和。

參考文獻

[1]

Glantz, Stanton A. “Primer of Biostatistics.”, McGraw-Hill, Fifth Edition, 2002.

[2]

Wikipedia, “F-distribution”, https://en.wikipedia.org/wiki/F-distribution

範例

Glantz[1] 第 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% 水準下被拒絕。