numpy.random.RandomState.f¶
方法
-
RandomState.
f
(dfnum, dfden, size=None)¶ 从F分布中提取样本。
从具有指定参数的F分布中提取样本, dfnum (分子自由度)和 dfden (分母中的自由度),其中两个参数都应大于零。
F分布的随机变量(也称为fisher分布)是方差分析测试中出现的连续概率分布,是两个卡方变量的比值。
参数: - DFNUM : 浮点数或类似浮点数的数组
分子的自由度应大于0。
- 德夫登 : 浮点数或类似浮点数的数组
分母中的自由度应大于0。
- size : int或int的元组,可选
输出形状。如果给定的形状是,例如,
(m, n, k)
然后m * n * k
取样。如果尺寸是None
(默认),如果dfnum
和dfden
都是标量。否则,np.broadcast(dfnum, dfden).size
取样。
返回: - out : ndarray或scalar
从参数化Fisher分布中提取样本。
参见
scipy.stats.f
- 概率密度函数、分布或累积密度函数等。
笔记
F统计量用于比较组内差异和组间差异。计算分布取决于采样,因此它是问题中各个自由度的函数。变量 dfnum 是样本数减去1,组间自由度,而 dfden 是组内自由度,每组样本数之和减去组数。
工具书类
[1] Glantz,Stanton A.,《生物统计学入门》,McGraw-Hill,第五版,2002年。 [2] 维基百科,“f-distribution”,https://en.wikipedia.org/wiki/f-distribution 实例
格兰茨的一个例子 [1] ,PP 44-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%样本的下限为:
>>> sort(s)[-10] 7.61988120985
所以F统计量有1%的概率会超过7.62,测量值是36,所以零假设在1%的水平被拒绝。