Многомерное нормальное распределение является обобщением одномерного нормального распределения к двум или больше переменным. Это - распределение для случайных векторов коррелированых переменных, где каждый векторный элемент имеет одномерное нормальное распределение. В самом простом случае никакая корреляция не существует среди переменных, и элементами векторов являются независимые одномерные нормальные случайные переменные.
Поскольку легко работать с, многомерное нормальное распределение часто используется в качестве модели для многомерных данных.
Statistics and Machine Learning Toolbox™ обеспечивает несколько функциональностей, связанных с многомерным нормальным распределением.
Многомерное нормальное распределение использует параметры в этой таблице.
Параметр | Описание | Одномерный нормальный аналог |
---|---|---|
μ | Средний вектор | Означайте μ (скаляр) |
Σ | Ковариационная матрица — Диагональные элементы содержат отклонения для каждой переменной, и недиагональные элементы содержат ковариации между переменными | Отклонение σ 2 (скаляр) |
Обратите внимание на то, что в одномерном случае, Σ является отклонением, не стандартным отклонением. Для получения дополнительной информации о параметрах одномерного нормального распределения смотрите Параметры.
Функция плотности вероятности (PDF) d - размерное многомерное нормальное распределение
где x и μ 1 d векторами, и Σ является d-by-d симметричная, положительная определенная матрица.
Обратите внимание на то, что Statistics and Machine Learning Toolbox:
Поддерживает сингулярный Σ для случайной векторной генерации только. PDF не может быть написан в той же форме, когда Σ сингулярен.
Использование x и μ, ориентированный как векторы-строки, а не вектор-столбцы.
Для примера смотрите Двумерное Нормальное распределение PDF.
Многомерная нормальная кумулятивная функция распределения (cdf) оцененный в x задана как вероятность, что случайный векторный v, распределенный как многомерный нормальный, находится в полубесконечном прямоугольнике с верхними пределами, заданными x,
Несмотря на то, что многомерный нормальный cdf не имеет никакой закрытой формы, mvncdf
может вычислить cdf значения численно.
Для примера смотрите Двумерное Нормальное распределение 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] Kotz, S., Н. Бэлэкришнэн и Н. Л. Джонсон. Непрерывные Многомерные Распределения: Объем 1: Модели и Приложения. 2-й редактор Нью-Йорк: John Wiley & Sons, Inc., 2000.
NormalDistribution
| mvncdf
| mvnpdf
| mvnrnd