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 не является положительно определённой.
Смотрите также
Примечания
Масштабная матрица 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()
Входные квантили могут иметь любую форму массива, при условии, что последняя ось обозначает компоненты.
Альтернативно, объект может быть вызван (как функция) для фиксации степеней свободы и параметров масштаба, возвращая «замороженную» случайную переменную Вишарта:
>>> rv = wishart(df=1, scale=1) >>> # Frozen object with the same methods but holding the given >>> # degrees of freedom and scale fixed.