Многомерное нормальное распределение

Функция плотности многомерного нормального распределения для любого вектора x в d-мерном пространстве определяется как:

Где:

Поскольку матрица Σ является симметричной и положительно определенной, то её можно разложить на множители Σ = CCT (так называемое разложение Холецкого), где матрица C с числом строк и столбцов d×d является нижним треугольником. Приняв обозначение, что cij является (ij)-м элементом матрицы C, то алгоритм для генерирования искомого вектора X с нормальным многомерным распределением будет иметь следующий вид:

  1. Выполнение разложения Холецкого матрицы Σ для нахождения такой матрицы C, которая удовлетворяет условию Σ = CCT, является нижней треугольной и содержит строго положительные элементы на диагонали:

Элементы матрицы C вычисляются по следующим формулам:

при i:

  1. Генерирование выборок Z1Z2, …, Zd из независимых и одинаково распределенных величин с распределением N(0, 1), каждая выборка содержит по n элементов. При этом используется метод Бокса-Мюллера (см. описание нормального распределения).

  2. Принять для = 1, 2, …, d:

  1. Возвращается значение = (X1X2, …, Xd)T. В матричной записи = μ + CZ.

См. также:

ISmMultiNormalDistribution | Библиотека методов и моделей