mvncdf

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

Синтаксис

p = mvncdf(X)
p = mvncdf(X,mu,sigma)
p = mvncdf(xl,xu,mu,sigma)
p = mvncdf(___,options)
[p,err] = 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
    0.0496
    0.0012
    0.5949

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Отображение Уровень отображает вывод. Выбором является '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