scipy.stats.random_table#

scipy.stats.random_table = <scipy.stats._multivariate.random_table_gen object>[原始碼]#

具有固定邊際總和的獨立樣本的列聯表。

這是具有給定行和列向量總和的隨機表的分布。此分布表示在行列獨立的虛無假設下,隨機表的集合。它用於獨立性的假設檢定。

由於假設獨立性,因此可以從行和列總和計算每個表格元素的預期頻率,從而使分布完全由這兩個向量確定。

參數:
rowarray_like

每行表格條目的總和。

colarray_like

每列表格條目的總和。

seed{None, int, np.random.RandomState, np.random.Generator}, optional

用於繪製隨機變數。 如果 seedNone,則使用 RandomState 單例。 如果 seed 是整數,則使用新的 RandomState 實例,並以 seed 作為種子。 如果 seed 已經是 RandomStateGenerator 實例,則使用該物件。 預設值為 None

註解

行和列向量必須是一維的、非空的,並且每個向量的總和必須相同。它們不能包含負數或非整數條目。

分布中的隨機元素是使用 Boyett 的 [1] 或 Patefield 的演算法 [2] 產生的。 Boyett 的演算法具有 O(N) 的時間和空間複雜度,其中 N 是表格中條目的總和。 Patefield 的演算法具有 O(K x log(N)) 的時間複雜度,其中 K 是表格中儲存格的數量,並且只需要少量的常數工作空間。 預設情況下,rvs 方法會根據輸入選擇最快的演算法,但您可以使用關鍵字 method 指定演算法。 允許的值為 “boyett” 和 “patefield”。

在版本 1.10.0 中新增。

參考文獻

[1]
  1. Boyett, AS 144 Appl. Statist. 28 (1979) 329-332

[2]

W.M. Patefield, AS 159 Appl. Statist. 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]])

或者,可以呼叫物件(作為函數)以修正行和列向量總和,並傳回「凍結」分布。

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

方法

logpmf(x)

表格 x 在分布中發生的對數機率。

pmf(x)

表格 x 在分布中發生的機率。

mean(row, col)

平均表格。

rvs(row, col, size=None, method=None, random_state=None)

繪製具有給定行和列向量總和的隨機表格。