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

Обзор

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

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

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

  • Сгенерируйте случайные числа из распределения используя mvnrnd.

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

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

Параметры

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

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

Обратите внимание, что в одномерном случае Σ является дисперсией, а не стандартным отклонением. Для получения дополнительной информации о параметрах одномерного нормального распределения смотрите Параметры.

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

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

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

где x и μ являются векторами 1-by d, а Σ является d -by d симметричной, положительно определенной матрицей.

Обратите внимание, что Statistics and Machine Learning Toolbox:

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

  • Использует x и μ, ориентированные как векторы-строки, а не как векторы-столбцы.

Для получения примера см. Раздел «Двухфазное нормальное распределение PDF».

Кумулятивная функция распределения

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

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

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

Для получения примера смотрите Двухмерное нормальное распределение 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.

См. также

| | |

Похожие темы