exponenta event banner

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)

Figure contains an axes. The axes contains an object of type surface.

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

Определение двумерных параметров нормального распределения 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')

Figure contains an axes. The axes contains 2 objects of type contour, line.

Вычисление многовариантной кумулятивной вероятности требует значительно больше работы, чем вычисление одномерной вероятности. По умолчанию 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-за-d числовая матрица, где n - положительное скалярное целое число, а d - размерность одного многомерного нормального распределения. Строки X соответствуют наблюдениям (или точкам), а столбцы - переменным (или координатам).

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

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

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

Ковариационная матрица многомерного нормального распределения, заданная как d-за-d симметричная, положительная определенная матрица, где d - размерность многомерного нормального распределения. Если ковариационная матрица диагональна, содержащая дисперсии вдоль диагонали и нулевые ковариации от неё, то можно также указать Sigma в качестве 1-by-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' - уровень вывода на дисплей. Выбор: 'off' (по умолчанию), 'iter', и 'final'. Функция игнорирует 'Display' когда d < 4.

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

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

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

свернуть все

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

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

Подробнее

свернуть все

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

Многомерное нормальное распределение - это обобщение одномерного нормального распределения на две или более переменных. Он имеет два параметра, средний вектор λ и ковариационную матрицу, которые аналогичны среднему и дисперсионным параметрам одномерного нормального распределения. Диагональные элементы Λ содержат дисперсии для каждой переменной, а внедиагональные - covariances между переменными.

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

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

где x и λ - 1-за-d векторы, а Λ - d-за-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 - стандартное отклонение.

Алгоритмы

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

Ссылки

[1] Дрезнер, З. «Вычисление тривариатного нормального интеграла». Математика вычислений. Том 63, 1994, стр. 289-294.

[2] Дрезнер, З. и Г. О. Везоловский. «О вычислении двумерного нормального интеграла». Журнал статистических вычислений и моделирования. Том 35, 1989, стр. 101-107.

[3] Генц, А. «Численное вычисление прямоугольных бивариатных и тривариатных нормальных и t вероятностей». Статистика и вычисления. т. 14, № 3, 2004, стр. 251-260.

[4] Genz, A. и Ф. Брец. «Численное вычисление многомерных t вероятностей с применением к вычислению мощности множественных контрастов». Журнал статистических вычислений и моделирования. Том 63, 1999, стр. 361-378.

[5] Genz, A. и Ф. Брец. «Сравнение методов вычисления многомерных вероятностей». Журнал вычислительной и графической статистики. т. 11, № 4, 2002, стр. 950-971.

[6] Коц, С., Н. Балакришнан и Н. Л. Джонсон. Непрерывные многомерные дистрибутивы: Том 1: Модели и приложения. 2-я ред. Нью-Йорк: John Wiley & Sons, Inc., 2000.

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

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