mvnpdf

Многомерная нормальная функция плотности вероятности

Синтаксис

y = mvnpdf(X)
y = mvnpdf(X,mu)
y = mvnpdf(X,mu,sigma)

Описание

пример

y = mvnpdf(X) возвращает n-by-1 векторный y, содержащий функцию плотности вероятности (PDF) d - размерное многомерное нормальное распределение с нулевым средним значением и единичной ковариационной матрицей, оцененной в каждой строке n-by-d матричный X. Для получения дополнительной информации смотрите Многомерное Нормальное распределение.

пример

y = mvnpdf(X,mu) возвращает значения PDF точек в X, где mu определяет среднее значение каждого связанного многомерного нормального распределения.

пример

y = mvnpdf(X,mu,sigma) возвращает значения PDF точек в X, где sigma определяет ковариацию каждого связанного многомерного нормального распределения.

Задайте [] для mu, чтобы использовать его значение по умолчанию нуля когда это необходимо, чтобы задать только sigma.

Примеры

свернуть все

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

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

mu = zeros(1,5);
sigma = eye(5);
rng('default')  % For reproducibility
X = mvnrnd(mu,sigma,8)
X = 8×5

    0.5377    3.5784   -0.1241    0.4889   -1.0689
    1.8339    2.7694    1.4897    1.0347   -0.8095
   -2.2588   -1.3499    1.4090    0.7269   -2.9443
    0.8622    3.0349    1.4172   -0.3034    1.4384
    0.3188    0.7254    0.6715    0.2939    0.3252
   -1.3077   -0.0631   -1.2075   -0.7873   -0.7549
   -0.4336    0.7147    0.7172    0.8884    1.3703
    0.3426   -0.2050    1.6302   -1.1471   -1.7115

Оцените PDF распределения в точках в X.

y = mvnpdf(X)
y = 8×1

    0.0000
    0.0000
    0.0000
    0.0000
    0.0054
    0.0011
    0.0015
    0.0003

Найдите точку в X с самым большим значением PDF.

[maxpdf,idx] = max(y)
maxpdf = 0.0054
idx = 5
maxPoint = X(idx,:)
maxPoint = 1×5

    0.3188    0.7254    0.6715    0.2939    0.3252

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

Создайте шесть 3D нормальных распределений, каждого с отличным средним значением. Оцените PDF каждого распределения в различной случайной точке.

Задайте средние значения mu и ковариации sigma дистрибутивов. Каждое распределение имеет ту же ковариационную матрицу — единичная матрица.

firstDim = (1:6)';
mu = repmat(firstDim,1,3)
mu = 6×3

     1     1     1
     2     2     2
     3     3     3
     4     4     4
     5     5     5
     6     6     6

sigma = eye(3)
sigma = 3×3

     1     0     0
     0     1     0
     0     0     1

Случайным образом демонстрационный однажды от каждого из этих шести дистрибутивов.

rng('default')  % For reproducibility
X = mvnrnd(mu,sigma)
X = 6×3

    1.5377    0.5664    1.7254
    3.8339    2.3426    1.9369
    0.7412    6.5784    3.7147
    4.8622    6.7694    3.7950
    5.3188    3.6501    4.8759
    4.6923    9.0349    7.4897

Оцените pdfs дистрибутивов в точках в X. PDF первого распределения оценен в точке X(1,:), PDF второго распределения оценен в точке X(2,:) и так далее.

y = mvnpdf(X,mu)
y = 6×1

    0.0384
    0.0111
    0.0000
    0.0009
    0.0241
    0.0001

Оцените PDF двумерного нормального распределения в наборе данных точек.

Задайте средний mu и ковариацию sigma распределения.

mu = [1 -1];
sigma = [0.9 0.4; 0.4 0.3];

Случайным образом демонстрационный от распределения 100 раз. Задайте X как матрицу выбранных точек.

rng('default')  % For reproducibility
X = mvnrnd(mu,sigma,100);

Оцените PDF распределения в точках в X.

y = mvnpdf(X,mu,sigma);

Постройте значения плотности вероятности.

scatter3(X(:,1),X(:,2),y)
xlabel('X1')
ylabel('X2')
zlabel('Probability Density')

Создайте десять различных пятимерных нормальных распределений и сравните значения их pdfs в заданной точке.

Установите размерности n и d, равный 10 и 5, соответственно.

n = 10;
d = 5;

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

mu = ones(1,d)
mu = 1×5

     1     1     1     1     1

mat = eye(d);
nMat = repmat(mat,1,1,n);
var = reshape(1:n,1,1,n);
sigma = nMat.*var;

Отобразите первые две ковариационных матрицы в sigma.

sigma(:,:,1:2)
ans = 
ans(:,:,1) =

     1     0     0     0     0
     0     1     0     0     0
     0     0     1     0     0
     0     0     0     1     0
     0     0     0     0     1


ans(:,:,2) =

     2     0     0     0     0
     0     2     0     0     0
     0     0     2     0     0
     0     0     0     2     0
     0     0     0     0     2

Установите x быть случайной точкой в пяти мерных пространствах.

rng('default')  % For reproducibility
x = normrnd(0,1,1,5)
x = 1×5

    0.5377    1.8339   -2.2588    0.8622    0.3188

Оцените PDF в x для каждого из этих десяти дистрибутивов.

y = mvnpdf(x,mu,sigma)
y = 10×1
10-4 ×

    0.2490
    0.8867
    0.8755
    0.7035
    0.5438
    0.4211
    0.3305
    0.2635
    0.2134
    0.1753

Постройте график результатов.

scatter(1:n,y,'filled')
xlabel('Distribution Index')
ylabel('Probability Density at x')

Входные параметры

свернуть все

Точки оценки, заданные как 1-by-d числовой вектор или n-by-d числовая матрица, где n является положительным скалярным целым числом и d, являются размерностью одного многомерного нормального распределения. Строки X соответствуют наблюдениям (или точки), и столбцы соответствуют переменным (или координаты).

Если X является вектором, то mvnpdf реплицирует его, чтобы совпадать с ведущей размерностью mu или последующим измерением sigma.

Типы данных: single | double

Средства многомерных нормальных распределений, заданных как 1-by-d числовой вектор или n-by-d числовая матрица.

  • Если mu является вектором, то mvnpdf реплицирует вектор, чтобы совпадать с последующим измерением sigma.

  • Если mu является матрицей, то каждая строка mu является средним вектором одного многомерного нормального распределения.

Типы данных: single | double

Ковариации многомерных нормальных распределений, заданных как d-by-d симметричная, положительная определенная матрица или d-by-d-by-n числовой массив.

  • Если sigma является матрицей, то mvnpdf реплицирует матрицу, чтобы совпадать с количеством строк в mu.

  • Если sigma является массивом, то каждая страница sigma, sigma(:,:,i), является ковариационной матрицей одного многомерного нормального распределения и, поэтому, является симметричной, положительной определенной матрицей.

Если ковариационные матрицы являются диагональными, содержа отклонения вдоль диагональных и нулевых ковариаций от него, то можно также задать sigma как 1-by-d вектор или 1-by-d-by-n массив, содержащий только диагональные элементы.

Типы данных: single | double

Выходные аргументы

свернуть все

значения PDF, возвращенные как n-by-1 числовой вектор, где n является одним из следующего:

  • Количество строк в X, если X является матрицей

  • X числа раз реплицирован, если X является вектором

Если X является матрицей, mu является матрицей, и sigma является массивом, то mvnpdf вычисляет y(i) с помощью X(i,:), mu(i,:) и sigma(:,:,i).

Типы данных: double

Больше о

свернуть все

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

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

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

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

где x и μ 1 d векторами, и Σ является d-by-d симметричная, положительная определенная матрица. Только mvnrnd позволяет положительные полуопределенные матрицы Σ, которые могут быть сингулярными. PDF не может иметь той же формы, когда Σ сингулярен.

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

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

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

Советы

  • В одномерном случае sigma является отклонением, не стандартным отклонением. Например, mvnpdf(1,0,4) совпадает с normpdf(1,0,2), где 4 является отклонением, и 2 является стандартным отклонением.

Ссылки

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

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Представлено до R2006a

Для просмотра документации необходимо авторизоваться на сайте