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


Python SciPy stats.random_table用法及代码示例


本文简要介绍 python 语言中 scipy.stats.random_table 的用法。

用法:

scipy.stats.random_table = <scipy.stats._multivariate.random_table_gen object>#

来自具有固定边际总和的独立样本的列联表。

这是具有给定行和列向量和的随机表的分布。此分布表示行和列独立的零假设下的随机表集。它用于独立性的假设检验。

由于假定的独立性,每个表元素的预期频率可以根据行和列的总和来计算,因此分布完全由这两个向量确定。

参数

row array_like

每行中表条目的总和。

col array_like

每列中表条目的总和。

seed {无,int,np.random.RandomState,np.random.Generator},可选

用于绘制随机变量。如果种子None, 这RandomState使用单例。如果种子是一个 int,一个新的RandomState使用实例,用种子播种。如果种子已经是一个RandomState或者Generator实例,然后使用该对象。默认为None.

注意

行向量和列向量必须是一维的,不能为空,并且每个向量的总和相同。它们不能包含负数或非整数条目。

分布中的随机元素是通过 Boyett 生成的[1]或 Patefield 算法[2]。 Boyett 的算法具有 O(N) 时间和空间复杂度,其中 N 是表中条目的总和。 Patefield 的算法具有 O(K x log(N)) 时间复杂度,其中 K 是表中的单元格数量,并且仅需要较小的常量工作空间。默认情况下,房车方法根据输入选择最快的算法,但您可以使用关键字指定算法方法。允许的值为“boyett” 和“patefield”。

参考

[1]
  1. 博耶特,AS 144 应用。国家主义者。 28(1979)329-332

[2]

W.M.帕特菲尔德,AS 159 应用。国家主义者。 30(1981)91-97

例子

>>> from scipy.stats import random_table
>>> row = [1, 5]
>>> col = [2, 3, 1]
>>> random_table.mean(row, col)
array([[0.33333333, 0.5       , 0.16666667],
       [1.66666667, 2.5       , 0.83333333]])

或者,可以调用该对象(作为函数)来修复行和列向量和,返回 “frozen” 分布。

>>> dist = random_table(row, col)
>>> dist.rvs(random_state=123)
array([[1., 0., 0.],
       [1., 3., 1.]])

相关用法


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