mvncdf

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

Описание

пример

p = mvncdf(X) возвращает кумулятивную функцию распределения (cdf) многомерного нормального распределения с нулевым средним значением и единичной ковариационной матрицей, рассчитанной для каждой строки из X. Для получения дополнительной информации смотрите Многомерное Нормальное распределение.

пример

p = mvncdf(X,mu,Sigma) возвращает cdf многомерного нормального распределения со средним mu и ковариация Sigma, рассчитанный для каждой строки из X.

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

пример

p = mvncdf(xl,xu,mu,Sigma) возвращает многомерный нормальный cdf, оцененный по многомерному прямоугольнику с нижними и верхними пределами, заданными xl и xu, соответственно.

пример

p = mvncdf(___,options) указывает, что параметры управления для численного интегрирования использовались для расчета p, использование любой из комбинаций входных аргументов в предыдущих синтаксисах. Создайте options аргумент с помощью statset функция с любой комбинацией параметров 'TolFun', 'MaxFunEvals', и 'Display'.

пример

[p,err] = mvncdf(___) дополнительно возвращает оценку ошибки в p. Для получения дополнительной информации см. Алгоритмы.

Примеры

свернуть все

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

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

firstDim = (-2:2)';
X = repmat(firstDim,1,4)
X = 5×4

    -2    -2    -2    -2
    -1    -1    -1    -1
     0     0     0     0
     1     1     1     1
     2     2     2     2

Оцените cdf в точках в X.

p = mvncdf(X)
p = 5×1

    0.0000
    0.0006
    0.0625
    0.5011
    0.9121

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

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

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

mu = [0.5 -0.3 0.2 0.1 -0.4];
Sigma = 0.5*eye(5);
rng('default')  % For reproducibility
X = mvnrnd(mu,Sigma,4);

Найдите cdf значения p в точках в X и связанная ошибка оценивает err. Отобразите сводные данные числовых вычислений.

[p,err] = mvncdf(X,mu,Sigma,statset('Display','final'))
Successfully satisfied error tolerance of 0.0001 in 8650 function evaluations.
Successfully satisfied error tolerance of 0.0001 in 8650 function evaluations.
Successfully satisfied error tolerance of 0.0001 in 8650 function evaluations.
Successfully satisfied error tolerance of 0.0001 in 8650 function evaluations.
p = 4×1

    0.1520
    0.0407
    0.0002
    0.1970

err = 4×1
10-16 ×

    0.5949
    0.1487
         0
    0.1983

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

свернуть все

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

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

Вектор средних значений многомерного нормального распределения в виде 1- d числовой вектор или числовой скаляр, где d является размерностью многомерного нормального распределения. Если mu скаляр, затем mvncdf реплицирует скаляр, чтобы совпадать с размером X.

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

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

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

Прямоугольный нижний предел в виде 1- d числовой вектор.

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

Прямоугольный верхний предел в виде 1- d числовой вектор.

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

Опции численного интегрирования в виде структуры. Создайте options аргумент путем вызова statset функция с любой комбинацией следующих параметров:

  • 'TolFun' — Максимальный допуск абсолютной погрешности. Значением по умолчанию является 1e-8 когда d <4, и 1e-4 когда d ≥ 4.

  • 'MaxFunEvals' — Максимальное количество оценок подынтегрального выражения позволило когда d ≥ 4. Значением по умолчанию является 1e7. Функция игнорирует 'MaxFunEvals' когда d <4.

  • 'Display' — Level of display выводится. Выбором является 'off' (значение по умолчанию), 'iter', и 'final'. Функция игнорирует 'Display' когда d <4.

Пример: statset('TolFun',1e-7,'Display','final')

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

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

свернуть все

значения cdf, возвращенные как любой n-by-1 числовой вектор, где n является количеством строк в X, или числовой скаляр, представляющий вероятность по прямоугольной области, задан xl и xu.

Допуск абсолютной погрешности, возвращенный в виде положительного числа. Для двумерных и trivariate распределений допуском абсолютной погрешности по умолчанию является 1e-8. Для четырех или больше размерностей допуском абсолютной погрешности по умолчанию является 1e-4. Для получения дополнительной информации см. Алгоритмы.

Больше о

свернуть все

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

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

Функция плотности вероятности (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 отклонение, не стандартное отклонение. Например, mvncdf(1,0,4) совпадает с normcdf(1,0,2), где 4 отклонение и 2 стандартное отклонение.

Алгоритмы

Для двумерных и trivariate распределений, mvncdf использует адаптивную квадратуру на преобразовании плотности t, на основе методов, разработанных Drezner и [1]Wesolowsky [2] и Genz [3]. Для четырех или больше размерностей, mvncdf использует алгоритм интегрирования квази-Монте-Карло на основе методов, разработанных Genz и [4]Bretz [5].

Ссылки

[1] Drezner, Z. “Расчет Нормального Интеграла Trivariate”. Математика Расчета. Издание 63, 1994, стр 289–294.

[2] Drezner, Z. и Г. О. Весоловский. “На Расчете Двумерного Нормального Интеграла”. Журнал Статистического Расчета и Симуляции. Издание 35, 1989, стр 101–107.

[3] Genz, A. “Численный расчет Прямоугольных Двумерных и Нормальных и t Вероятностей Trivariate”. Статистика и Вычисление. Издание 14, № 3, 2004, стр 251–260.

[4] Genz, A. и Ф. Брец. “Численный расчет Многомерных t Вероятностей с Приложением к Расчету мощности Нескольких Контрастов”. Журнал Статистического Расчета и Симуляции. Издание 63, 1999, стр 361–378.

[5] Genz, A. и Ф. Брец. “Сравнение Методов для Расчета Многомерных t Вероятностей”. Журнал Вычислительной и Графической Статистики. Издание 11, № 4, 2002, стр 950–971.

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

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

Введен в R2006a