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


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


用法:

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

從F分布中抽取樣本。

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

F分布的隨機變量(也稱為Fisher分布)是在ANOVA測試中出現的連續概率分布,並且是兩個chi-square變量之比。

參數:
dfnum float 或 array_like of floats

分子的自由度必須> 0。

dfden float 或 array_like of float

分母的自由度必須> 0。

size int 或 tuple of ints, 可選參數

輸出形狀。如果給定的形狀是(m, n, k), 然後m * n * k抽取樣品。如果尺寸是None(默認),如果返回一個值dfnumdfden都是標量。除此以外,np.broadcast(dfnum, dfden).size抽取樣品。

返回值:
out ndarray或標量

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

注意:

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

參考文獻:

[1]Stanton A. Glantz,《生物統計學入門》,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.random.mtrand.RandomState.f。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。