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]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]])