scipy.stats.random_table#

scipy.stats.random_table = object>[источник]#

Таблицы сопряженности из независимых выборок с фиксированными маргинальными суммами.

Это распределение случайных таблиц с заданными суммами векторов строк и столбцов. Это распределение представляет множество случайных таблиц при нулевой гипотезе о независимости строк и столбцов. Оно используется в проверках гипотез о независимости.

Из-за предполагаемой независимости ожидаемая частота каждого элемента таблицы может быть вычислена из сумм строк и столбцов, так что распределение полностью определяется этими двумя векторами.

Параметры:
строкаarray_like

Сумма записей таблицы в каждой строке.

столбецarray_like

Сумма записей таблицы в каждом столбце.

seed{None, int, np.random.RandomState, np.random.Generator}, опционально

Используется для генерации случайных величин. Если seed является None, RandomState используется синглтон. Если seed является int, новый RandomState используется экземпляр, инициализированный с seed. Если seed уже является RandomState или Generator экземпляр, то этот объект используется. По умолчанию None.

Методы

logpmf(x)

Логарифм вероятности таблицы x встречаться в распределении.

pmf(x)

Вероятность таблицы x встречаться в распределении.

mean(row, col)

Таблица средних значений.

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

Создание случайных таблиц с заданными суммами по строкам и столбцам.

Примечания

Векторы строк и столбцов должны быть одномерными, не пустыми, и каждый должен суммироваться к одному и тому же значению. Они не могут содержать отрицательные или нецелочисленные элементы.

Случайные элементы из распределения генерируются либо с помощью метода Бойетта [1] или алгоритм Пейтфилда [2]. Алгоритм Бойетта имеет временную и пространственную сложность O(N), где N - общая сумма записей в таблице. Алгоритм Пейтфилда имеет временную сложность O(K x log(N)), где K - количество ячеек в таблице и требует только небольшого постоянного рабочего пространства. По умолчанию, rvs метод выбирает самый быстрый алгоритм на основе входных данных, но вы можете указать алгоритм с помощью ключевого слова метод. Допустимые значения: "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]])