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

Панорама

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

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

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 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')

Двумерное Нормальное распределение 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)

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

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

Задайте двумерные параметры нормального распределения 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] Kotz, S., Н. Бэлэкришнэн и Н. Л. Джонсон. Непрерывные Многомерные Распределения: Объем 1: Модели и Приложения. 2-й редактор Нью-Йорк: John Wiley & Sons, Inc., 2000.

Смотрите также

| | |

Похожие темы