当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy Generator.f用法及代码示例


本文简要介绍 python 语言中 numpy.random.Generator.f 的用法。

用法:

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

从 F 分布中抽取样本。

样本是从具有指定参数 dfnum(分子自由度)和 dfden(分母自由度)的 F 分布中抽取的,其中两个参数都必须大于零。

F 分布的随机变量(也称为 Fisher 分布)是在 ANOVA 检验中出现的连续概率分布,是两个卡方变量的比率。

参数

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.default_rng().f(dfnum, dfden, 1000)

前 1% 样本的下限为:

>>> np.sort(s)[-10]
7.61988120985 # random

所以 F 统计量超过 7.62 的概率大约为 1%,测量值为 36,因此在 1% 的水平上拒绝原假设。

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.random.Generator.f。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。