exponenta event banner

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

Обзор

Многомерное нормальное распределение - это обобщение одномерного нормального распределения на две или более переменных. Это распределение для случайных векторов коррелированных переменных, где каждый векторный элемент имеет одномерное нормальное распределение. В простейшем случае никакой корреляции между переменными не существует, и элементы векторов являются независимыми одномерными нормальными случайными переменными.

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

Toolbox™ статистики и машинного обучения предоставляет несколько функций, связанных с многомерным нормальным распределением.

  • Создание случайных чисел из распределения с помощью mvnrnd.

  • Оценка функции плотности вероятности (pdf) при определенных значениях с помощью mvnpdf.

  • Оценка кумулятивной функции распределения (cdf) при определенных значениях с помощью mvncdf.

Параметры

Многомерное нормальное распределение использует параметры в этой таблице.

ПараметрОписаниеОдномерный нормальный аналог
μСредний векторСреднее (скаляр)
ΣКовариационная матрица - диагональные элементы содержат дисперсии для каждой переменной, а внедиагональные элементы содержат ковариации между переменнымиДисперсию start2 (скаляр)

Заметим, что в одномерном случае Λ является дисперсией, а не стандартным отклонением. Дополнительные сведения о параметрах одномерного нормального распределения см. в разделе Параметры.

Функция плотности вероятности

Функция плотности вероятности (pdf) d-мерного многомерного нормального распределения

 y = f (x, μ ) = 1 | (2π) dexp (−12  (x-μ) Σ-1 (x-μ) ')

где x и λ - 1-за-d векторы, а Λ - d-за-d симметричная, положительная определенная матрица.

Обратите внимание, что набор инструментов для статистики и машинного обучения:

  • Поддерживает только сингулярное Δ для генерации случайных векторов. PDF-файл не может быть написан в той же форме в единственном числе.

  • В качестве векторов строк вместо векторов столбцов используются векторы x и λ.

Пример см. в разделе Bivariate Normal Distribution pdf.

Функция совокупного распределения

Многомерная нормальная кумулятивная функция распределения (cdf), вычисленная при x, определяется как вероятность того, что случайный вектор v, распределенный как многомерная нормаль, лежит в полубесконечном прямоугольнике с верхними пределами, определяемыми x,

Pr {v (1) ≤x (1), v (2) ≤x (2),..., v (d) ≤x (d)}.

Хотя многомерный нормальный cdf не имеет закрытой формы, mvncdf может численно вычислять значения cdf.

Пример см. в разделе Bivariate Normal Distribution cdf.

Примеры

Двумерное нормальное распределение pdf

Вычисление и печать 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')

Figure contains an axes. The axes contains an object of type surface.

Двухмерное нормальное распределение CDF

Вычислите и постройте график 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)

Figure contains an axes. The axes contains an object of type surface.

Вероятность по прямоугольной области

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

Определение двумерных параметров нормального распределения 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')

Figure contains an axes. The axes contains 2 objects of type contour, line.

Вычисление многовариантной кумулятивной вероятности требует значительно больше работы, чем вычисление одномерной вероятности. По умолчанию 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.

См. также

| | |

Связанные темы