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


Python numpy RandomState.f用法及代碼示例

本文簡要介紹 python 語言中 numpy.random.RandomState.f 的用法。

用法:

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

從 F 分布中抽取樣本。

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

F 分布的隨機變量(也稱為 Fisher 分布)是在 ANOVA 檢驗中出現的連續概率分布,是兩個卡方變量的比率。

注意

新代碼應改為使用default_rng() 實例的f 方法;請參閱快速入門。

參數

dfnum 浮點數或類似數組的浮點數

分子的自由度必須 > 0。

dfden 浮點數或浮點數的類似數組

分母的自由度必須 > 0。

size int 或整數元組,可選

輸出形狀。例如,如果給定的形狀是 (m, n, k) ,則繪製 m * n * k 樣本。如果 size 為 None(默認),如果 dfnumdfden 都是標量,則返回單個值。否則,將抽取np.broadcast(dfnum, dfden).size 樣本。

返回

out ndarray 或標量

從參數化的 Fisher 分布中抽取樣本。

注意

F 統計量用於比較 in-group 方差與 between-group 方差。計算分布取決於采樣,因此它是問題中各自自由度的函數。變量 dfnum 是樣本數減一,即組間自由度,而 dfden 是 within-groups 自由度,即每組樣本數之和減去組數。

參考

1

Glantz, Stanton A. “生物統計學入門”,McGraw-Hill,第五版,2002 年。

2

維基百科,“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% 的水平上拒絕原假設。

相關用法


注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.random.RandomState.f。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。