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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。