scipy.stats.wishart#

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

Случайная величина Уишарта.

The df ключевое слово указывает степени свободы. scale Ключевое слово указывает масштабную матрицу, которая должна быть симметричной и положительно определенной. В этом контексте масштабная матрица часто интерпретируется как матрица точности многомерного нормального распределения (обратная ковариационной матрице). Эти аргументы должны удовлетворять соотношению df > scale.ndim - 1, но см. примечания по использованию rvs метод с df < scale.ndim.

Параметры:
dfint

Степени свободы должны быть больше или равны размерности масштабной матрицы

scalearray_like

Симметричная положительно определенная масштабная матрица распределения

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

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

Методы

pdf(x, df, scale)

Функция плотности вероятности.

logpdf(x, df, scale)

Логарифм функции плотности вероятности.

rvs(df, scale, size=1, random_state=None)

Генерирует случайные выборки из распределения Уишарта.

entropy()

Вычислить дифференциальную энтропию распределения Уишарта.

Вызывает:
scipy.linalg.LinAlgError

Если матрица масштаба scale не является положительно определённой.

Смотрите также

invwishart, chi2

Примечания

Масштабная матрица scale должна быть симметричной положительно определенной матрицей. Сингулярные матрицы, включая симметричный положительно полуопределенный случай, не поддерживаются. Симметрия не проверяется; используется только нижняя треугольная часть.

Распределение Уишарта часто обозначается

\[W_p(\nu, \Sigma)\]

где \(\nu\) это степени свободы и \(\Sigma\) является \(p \times p\) матрица масштаба.

Функция плотности вероятности для wishart имеет поддержку для положительно определенных матриц \(S\); если \(S \sim W_p(\nu, \Sigma)\), тогда его PDF задаётся как:

\[f(S) = \frac{|S|^{\frac{\nu - p - 1}{2}}}{2^{ \frac{\nu p}{2} } |\Sigma|^\frac{\nu}{2} \Gamma_p \left ( \frac{\nu}{2} \right )} \exp\left( -tr(\Sigma^{-1} S) / 2 \right)\]

Если \(S \sim W_p(\nu, \Sigma)\) (Wishart) затем \(S^{-1} \sim W_p^{-1}(\nu, \Sigma^{-1})\) (обратное распределение Уишарта).

Если масштабная матрица одномерна и равна единице, то распределение Уишарта \(W_1(\nu, 1)\) схлопывается в \(\chi^2(\nu)\) распределение.

Алгоритм [2] реализовано с помощью rvs метод может создавать численно сингулярные матрицы с \(p - 1 < \nu < p\); пользователь может захотеть проверить это условие и сгенерировать заменяющие выборки при необходимости.

Добавлено в версии 0.16.0.

Ссылки

[1]

M.L. Eaton, “Многомерная статистика: векторный пространственный подход”, Wiley, 1983.

[2]

W.B. Smith и R.R. Hocking, 'Algorithm AS 53: Wishart Variate Generator', Applied Statistics, том 21, стр. 341-345, 1972.

Примеры

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy.stats import wishart, chi2
>>> x = np.linspace(1e-5, 8, 100)
>>> w = wishart.pdf(x, df=3, scale=1); w[:5]
array([ 0.00126156,  0.10892176,  0.14793434,  0.17400548,  0.1929669 ])
>>> c = chi2.pdf(x, 3); c[:5]
array([ 0.00126156,  0.10892176,  0.14793434,  0.17400548,  0.1929669 ])
>>> plt.plot(x, w)
>>> plt.show()
../../_images/scipy-stats-wishart-1_00_00.png

Входные квантили могут иметь любую форму массива, при условии, что последняя ось обозначает компоненты.

Альтернативно, объект может быть вызван (как функция) для фиксации степеней свободы и параметров масштаба, возвращая «замороженную» случайную переменную Вишарта:

>>> rv = wishart(df=1, scale=1)
>>> # Frozen object with the same methods but holding the given
>>> # degrees of freedom and scale fixed.