Документация Engee

Распределения матричной размерности

Распределения матричной размерности — это распределения, которые имеют размерность Matrixvariate (то есть каждая выборка представляет собой матрицу). Абстрактные типы для распределений матричной размерности:

const MatrixDistribution{S<:ValueSupport} = Distribution{Matrixvariate,S}

const DiscreteMatrixDistribution   = Distribution{Matrixvariate, Discrete}
const ContinuousMatrixDistribution = Distribution{Matrixvariate, Continuous}

Более сложные функции для работы со случайными матрицами можно найти в пакете RandomMatrices.jl.

Общий интерфейс

Для всех распределений реализован одинаковый набор методов:

# Base.sizeMethod

size(d::MatrixDistribution)

Возвращает размер каждой выборки из распределения d.

# Base.lengthMethod

length(d::MatrixDistribution)

Длина (то есть количество элементов) каждой выборки из распределения d.

# LinearAlgebra.rankMethod

rank(d::MatrixDistribution)

Ранг каждой выборки из распределения d.

# Statistics.meanMethod

mean(d::MatrixDistribution)

Возвращает матрицу средних значений d.

# Statistics.varMethod

var(d::MatrixDistribution)

Вычисляет матрицу поэлементных дисперсий для распределения d.

# Statistics.covMethod

cov(d::MatrixDistribution)

Вычисляет ковариационную матрицу для vec(X), где X — случайная матрица с распределением d.

# Distributions.pdfMethod

pdf(d::Distribution{ArrayLikeVariate{N}}, x::AbstractArray{<:Real,N}) where {N}

Evaluate the probability density function of d at x.

This function checks if the size of x is compatible with distribution d. This check can be disabled by using @inbounds.

Implementation

Instead of pdf one should implement _pdf(d, x) which does not have to check the size of x. However, since the default definition of pdf(d, x) falls back to logpdf(d, x) usually it is sufficient to implement logpdf.

See also: logpdf.

# Distributions.logpdfMethod

logpdf(d::Distribution{ArrayLikeVariate{N}}, x::AbstractArray{<:Real,N}) where {N}

Evaluate the logarithm of the probability density function of d at x.

This function checks if the size of x is compatible with distribution d. This check can be disabled by using @inbounds.

Implementation

Instead of logpdf one should implement _logpdf(d, x) which does not have to check the size of x.

See also: pdf.

Распределения

# Distributions.MatrixNormalType

MatrixNormal(M, U, V)
M::AbstractMatrix  n x p mean
U::AbstractPDMat   n x n row covariance
V::AbstractPDMat   p x p column covariance

Матричное нормальное распределение является обобщением многомерного нормального распределения для вещественных матриц . Если , то функция плотности вероятности имеет вид

тогда и только тогда, когда .

# Distributions.WishartType

Wishart(ν, S)
ν::Real           degrees of freedom (whole number or a real number greater than p - 1)
S::AbstractPDMat  p x p scale matrix

Распределение Уишарта является обобщением гамма-распределения для вещественных положительно полуопределенных матриц .

Если , то имеет ранг и функцию плотности вероятности вида

Если , то имеет ранг и плотность относительно подходящего элемента объема в пространстве положительно полуопределенных матриц. Дополнительные сведения см. здесь.

Для целочисленных случайная матрица, заданная в виде

имеет . Для нецелочисленных матрицы Уишарта можно создавать посредством разложения по Бартлетту.

# Distributions.InverseWishartType

InverseWishart(ν, Ψ)
ν::Real           degrees of freedom (greater than p - 1)
Ψ::AbstractPDMat  p x p scale matrix

Обратное распределение Уишарта является обобщением обратного гамма-распределений для вещественных положительно определенных матриц . Если , функция плотности вероятности имеет вид

тогда и только тогда, когда .

# Distributions.MatrixTDistType

MatrixTDist(ν, M, Σ, Ω)
ν::Real            positive degrees of freedom
M::AbstractMatrix  n x p location
Σ::AbstractPDMat   n x n scale
Ω::AbstractPDMat   p x p scale

Матричное t-распределение является обобщением многомерного t-распределения для вещественных матриц . Если , функция плотности вероятности имеет вид

где

Если совместное распределение задано в виде

то безусловное распределение имеет вид .

# Distributions.MatrixBetaType

MatrixBeta(p, n1, n2)
p::Int    dimension
n1::Real  degrees of freedom (greater than p - 1)
n2::Real  degrees of freedom (greater than p - 1)

Матричное бета-распределение является обобщением бета-распределения для вещественных матриц , для которых и являются положительно определенными. Если , функция плотности вероятности имеет вид

Если и являются независимыми, а означает нижний коэффициент Холецкого, то

имеет .

# Distributions.MatrixFDistType

MatrixFDist(n1, n2, B)
n1::Real          degrees of freedom (greater than p - 1)
n2::Real          degrees of freedom (greater than p - 1)
B::AbstractPDMat  p x p scale

Матричное F-распределение (иногда называемое матричным бета-распределением второго рода) является обобщением F-распределения для вещественных положительно полуопределенных матриц . Если , функция плотности вероятности имеет вид

Если совместное распределение задано в виде

то безусловное распределение имеет вид .

# Distributions.LKJType

LKJ(d, η)
d::Int   dimension
η::Real  positive shape

Распределение LKJ — это распределение по вещественным матрицам корреляции (положительно определенным матрицам с единицами на диагонали). Если , функция плотности вероятности имеет вид

Если , то распределение LKJ является равномерным по пространству матриц корреляции.

Если требуется коэффициент Холецкого матрицы корреляции, эффективнее будет использовать LKJCholesky, что позволит избежать разложения матрицы.