Многомерное нормальное распределение - это обобщение одномерного нормального распределения на две или более переменных. Это распределение для случайных векторов коррелированных переменных, где каждый векторный элемент имеет одномерное нормальное распределение. В простейшем случае никакой корреляции между переменными не существует, и элементы векторов являются независимыми одномерными нормальными случайными переменными.
Поскольку с ним легко работать, многомерное нормальное распределение часто используется в качестве модели для многомерных данных.
Toolbox™ статистики и машинного обучения предоставляет несколько функций, связанных с многомерным нормальным распределением.
Многомерное нормальное распределение использует параметры в этой таблице.
| Параметр | Описание | Одномерный нормальный аналог |
|---|---|---|
| μ | Средний вектор | Среднее (скаляр) |
| Σ | Ковариационная матрица - диагональные элементы содержат дисперсии для каждой переменной, а внедиагональные элементы содержат ковариации между переменными | Дисперсию start2 (скаляр) |
Заметим, что в одномерном случае Λ является дисперсией, а не стандартным отклонением. Дополнительные сведения о параметрах одномерного нормального распределения см. в разделе Параметры.
Функция плотности вероятности (pdf) d-мерного многомерного нормального распределения
(x-μ) ')
где x и λ - 1-за-d векторы, а Λ - d-за-d симметричная, положительная определенная матрица.
Обратите внимание, что набор инструментов для статистики и машинного обучения:
Поддерживает только сингулярное Δ для генерации случайных векторов. PDF-файл не может быть написан в той же форме в единственном числе.
В качестве векторов строк вместо векторов столбцов используются векторы x и λ.
Пример см. в разделе Bivariate Normal Distribution pdf.
Многомерная нормальная кумулятивная функция распределения (cdf), вычисленная при x, определяется как вероятность того, что случайный вектор v, распределенный как многомерная нормаль, лежит в полубесконечном прямоугольнике с верхними пределами, определяемыми x,
(d) ≤x (d)}.
Хотя многомерный нормальный cdf не имеет закрытой формы, mvncdf может численно вычислять значения cdf.
Пример см. в разделе Bivariate Normal Distribution cdf.
Вычисление и печать pdf двумерного нормального распределения с параметрами mu = [0 0] и Sigma = [0.25 0.3; 0.3 1].
Определение параметров mu и Sigma.
mu = [0 0]; Sigma = [0.25 0.3; 0.3 1];
Создание сетки равномерно разнесенных точек в двумерном пространстве.
x1 = -3:0.2:3; x2 = -3:0.2:3; [X1,X2] = meshgrid(x1,x2); X = [X1(:) X2(:)];
Вычислите pdf нормального распределения в точках сетки.
y = mvnpdf(X,mu,Sigma); y = reshape(y,length(x2),length(x1));
Постройте график значений pdf.
surf(x1,x2,y) caxis([min(y(:))-0.5*range(y(:)),max(y(:))]) axis([-3 3 -3 3 0 0.4]) xlabel('x1') ylabel('x2') zlabel('Probability Density')

Вычислите и постройте график cdf двумерного нормального распределения.
Определение среднего вектора mu и ковариационная матрица Sigma.
mu = [1 -1]; Sigma = [.9 .4; .4 .3];
Создайте сетку из 625 равномерно расположенных точек в двумерном пространстве.
[X1,X2] = meshgrid(linspace(-1,3,25)',linspace(-3,1,25)'); X = [X1(:) X2(:)];
Оцените cdf нормального распределения в точках сетки.
p = mvncdf(X,mu,Sigma);
Постройте график значений cdf.
Z = reshape(p,25,25); surf(X1,X2,Z)

Вычислите вероятность по единичному квадрату двумерного нормального распределения и создайте контурный график результатов.
Определение двумерных параметров нормального распределения mu и Sigma.
mu = [0 0]; Sigma = [0.25 0.3; 0.3 1];
Вычислите вероятность по квадрату единицы.
p = mvncdf([0 0],[1 1],mu,Sigma)
p = 0.2097
Чтобы визуализировать результат, сначала создайте сетку из равномерно разнесенных точек в двумерном пространстве.
x1 = -3:.2:3; x2 = -3:.2:3; [X1,X2] = meshgrid(x1,x2); X = [X1(:) X2(:)];
Затем вычислите pdf нормального распределения в точках сетки.
y = mvnpdf(X,mu,Sigma); y = reshape(y,length(x2),length(x1));
Наконец, создайте контурный график многомерного нормального распределения, включающего единичный квадрат.
contour(x1,x2,y,[0.0001 0.001 0.01 0.05 0.15 0.25 0.35]) xlabel('x') ylabel('y') line([0 0 1 1 0],[1 0 0 1 1],'Linestyle','--','Color','k')

Вычисление многовариантной кумулятивной вероятности требует значительно больше работы, чем вычисление одномерной вероятности. По умолчанию mvncdf функция вычисляет значения, меньшие, чем полная точность машины, и возвращает оценку ошибки в качестве дополнительного второго выходного сигнала. Просмотрите оценку ошибки в этом случае.
[p,err] = mvncdf([0 0],[1 1],mu,Sigma)
p = 0.2097
err = 1.0000e-08
[1] Коц, С., Н. Балакришнан и Н. Л. Джонсон. Непрерывные многомерные дистрибутивы: Том 1: Модели и приложения. 2-я ред. Нью-Йорк: John Wiley & Sons, Inc., 2000.
mvncdf | mvnpdf | mvnrnd | NormalDistribution