scipy.stats.invwishart#

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

Случайная величина обратного распределения Уишарта.

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

Параметры:
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(df, scale)

Дифференциальная энтропия распределения.

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

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

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

wishart

Примечания

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

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

\[W_p^{-1}(\nu, \Psi)\]

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

Функция плотности вероятности для invwishart имеет поддержку для положительно определенных матриц \(S\); если \(S \sim W^{-1}_p(\nu, \Sigma)\), тогда его PDF задаётся формулой:

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

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

Если масштабная матрица одномерна и равна единице, то обратное распределение Уишарта \(W_1(\nu, 1)\) сводится к обратному гамма-распределению с параметрами shape = \(\frac{\nu}{2}\) и scale = \(\frac{1}{2}\).

Вместо инвертирования случайно сгенерированной матрицы Уишарта, как описано в [2], здесь используется алгоритм из [4] для прямой генерации случайной обратной матрицы Уишарта без инвертирования.

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

Ссылки

[1]

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

[2]

M.C. Jones, «Generating Inverse Wishart Matrices», Communications in Statistics - Simulation and Computation, vol. 14.2, pp.511-514, 1985.

[3]

Gupta, M. and Srivastava, S. “Parametric Bayesian Estimation of Differential Entropy and Relative Entropy”. Entropy 12, 818 - 843. 2010.

[4]

S.D. Axen, “Efficiently generating inverse-Wishart matrices and their Cholesky factors”, arXiv:2310.15884v1. 2023.

Примеры

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy.stats import invwishart, invgamma
>>> x = np.linspace(0.01, 1, 100)
>>> iw = invwishart.pdf(x, df=6, scale=1)
>>> iw[:3]
array([  1.20546865e-15,   5.42497807e-06,   4.45813929e-03])
>>> ig = invgamma.pdf(x, 6/2., scale=1./2)
>>> ig[:3]
array([  1.20546865e-15,   5.42497807e-06,   4.45813929e-03])
>>> plt.plot(x, iw)
>>> plt.show()
../../_images/scipy-stats-invwishart-1_00_00.png

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

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

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