квантиль

Y = quantile (X, p) возвращает квантили элементов в векторе данных или массиве X для совокупной вероятности или вероятностей p в интервале [0,1].

Y = quantile (X, p) возвращает квантили элементов в векторе данных или массиве X для совокупной вероятности или вероятностей p в интервале [0,1].

Если X - вектор, то Y - скаляр или вектор, имеющий ту же длину, что и p.

Если X - матрица, то Y - вектор-строка или матрица, в которой количество строк Y равно длине p.

Для многомерных массивов квантиль работает по первому неодномерному измерению X.

Y = quantile (X, N) возвращает квантили для N равномерно распределенных кумулятивных вероятностей (1 / (N + 1), 2 / (N + 1),. N / (N + 1)) для целого числа N>1.

Если X - вектор, то Y - скаляр или вектор длины N.

Если X - матрица, то Y - это матрица, в которой количество строк Y равно N.

Для многомерных массивов квантиль работает по первому неодномерному измерению X.

Y = quantile (___, 'all') возвращает квантили всех элементов X для любого из первых двух синтаксисов.

Y = quantile (___, dim) возвращает квантили по рабочему измерению dim для любого из первых двух синтаксисов.

Y = quantile (___, vecdim) возвращает квантили по размерам, указанным в векторе vecdim для любого из первых двух синтаксисов. Например, если X является матрицей, то quantile (X, 0,5, [1 2]) возвращает квантиль 0,5 всех элементов X, потому что каждый элемент матрицы содержится в срезе массива, определяемом измерениями 1 и 2.

Y = quantile (___, 'Method', method) возвращает точные или приблизительные квантили в зависимости от значения метода, используя любую из комбинаций входных аргументов в предыдущих синтаксисах.

Примеры

Квантили для заданных вероятностей

Вычислите квантили набора данных для указанных вероятностей.

Создайте набор данных размером 10.

Рассчитайте квантиль 0,3.

Рассчитайте квантили для кумулятивных вероятностей 0,025, 0,25, 0,5, 0,75 и 0,975.

Квантили для N равномерно распределенных кумулятивных вероятностей

Вычислите квантили набора данных для заданного количества квантилей.

Создайте набор данных размером 10.

Вычислите четыре равномерно расположенных квантиля.

Использование y = quantile (x, [0,2,0,4,0,6,0,8]) - еще один способ вернуть четыре равномерно распределенных квантиля.

Квантили матрицы для заданных вероятностей

Вычислите квантили по столбцам и строкам матрицы данных для заданных вероятностей.

Создайте матрицу данных 4 на 6.

Вычислите квантиль 0,3 для каждого столбца X (dim = 1).

quantile возвращает вектор-строку y при вычислении одного квантиля для каждого столбца матрицы. Например, -0,3013 - это 0,3 квантиля первого столбца X с элементами (0,5377, 1,8339, -2,2588, 0,8622). Поскольку значение dim по умолчанию равно 1, вы можете вернуть тот же результат с y = quantile (X, 0,3).

Вычислите квантиль 0,3 для каждой строки X (dim = 2).

quantile возвращает вектор-столбец y при вычислении одного квантиля для каждой строки матрицы. Например, 0,3844 - это квантиль 0,3 первой строки X с элементами (0,5377, 0,3188, 3,5784, 0,7254, -0,1241, 0,6715).

Квантили матрицы для заданного числа квантилей

Вычислите N квантилей, равномерно распределенных по столбцам и строкам матрицы данных.

Создайте матрицу данных 6 на 10.

Вычислите три равномерно расположенных квантиля для каждого столбца X (dim = 1).

Каждый столбец матрицы y соответствует трем равномерно распределенным квантилям каждого столбца матрицы X. Например, первый столбец y с элементами (2, 8, 10) имеет квантили для первого столбца X с элементами (9, 10, 2, 10, 7, 1). y = quantile (X, 3) возвращает тот же ответ, поскольку значение dim по умолчанию равно 1.

Вычислите три равномерно расположенных квантиля для каждой строки X (dim = 2).

Каждая строка матрицы y соответствует трем равномерно распределенным квантилям каждой строки матрицы X. Например, первая строка y с элементами (7, 8, 8.75) имеет квантили для первой строки X с элементами (9, 3, 10, 8, 7, 8, 7).

Квантили многомерного массива для заданных вероятностей

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

Создайте массив X размером 3 на 5 на 2. Задайте вектор вероятностей p.

Вычислите квантили 0,25 и 0,75 всех элементов в X.

Yall (1) - квантиль 0,25 от X, а Yall (2) - квантиль 0,75 от X.

Вычислите квантили 0,25 и 0,75 для каждой страницы X, указав размеры 1 и 2 в качестве рабочих размеров.

Например, Ypage (1,1,1) - квантиль 0,25 первой страницы X, а Ypage (2,1,1) - квантиль 0,75 первой страницы X.

Вычислите квантили 0,25 и 0,75 элементов в каждом срезе X (i.), Указав размеры 2 и 3 в качестве рабочих измерений.

Например, Yrow (3,1) - это квантиль 0,25 элементов в X (3.), А Yrow (3,2) - квантиль 0,75 элементов в X (3.).

Медиана и квартили для четного числа элементов данных

Найдите медиану и квартили вектора x с четным числом элементов.

Вычислите медиану x.

Вычислите квартили x.

Использование y = quantile (x, 3) - еще один способ вычисления квартилей x.

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

Медиана и квартили для нечетного числа элементов данных

Найдите медиану и квартили вектора x с нечетным числом элементов.

Найдите медиану x.

Найдите квартили x.

Использование y = quantile (x, 3) - еще один способ вычисления квартилей x.

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

Квантили высокого вектора для данной вероятности

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

Когда вы выполняете вычисления на высоких массивах, MATLAB® использует либо параллельный пул (по умолчанию, если у вас есть Parallel Computing Toolbox ™), либо локальный сеанс MATLAB. Чтобы запустить пример, используя локальный сеанс MATLAB, когда у вас есть Parallel Computing Toolbox, измените глобальную среду выполнения с помощью функции mapreducer.

Создайте хранилище данных для набора данных airlinesmall. Считайте значения "NA" отсутствующими данными, чтобы хранилище данных заменяло их значениями NaN. Укажите для работы с переменной ArrTime.

Создайте высокую таблицу поверх хранилища данных и извлеките данные из высокой таблицы в высокий вектор.

Вычислите точный квантиль x для p = 0,5. Поскольку X - длинный вектор-столбец, а p - скаляр, квантиль по умолчанию возвращает точное значение квантиля.

Вычислите приблизительный квантиль x для p = 0,5. Укажите «Метод», «приблизительный», чтобы использовать алгоритм аппроксимации на основе T-Digest для вычисления квантилей.

Оцените высокие массивы и занесите результаты в память с помощью функции gather.

Значения приблизительного квантиля и точного квантиля соответствуют четырем показанным цифрам.

Квантили высокой матрицы по разным измерениям

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

Когда вы выполняете вычисления на высоких массивах, MATLAB® использует либо параллельный пул (по умолчанию, если у вас есть Parallel Computing Toolbox ™), либо локальный сеанс MATLAB. Чтобы запустить пример, используя локальный сеанс MATLAB, когда у вас есть Parallel Computing Toolbox, измените глобальную среду выполнения с помощью функции mapreducer.

Создайте высокую матрицу X, содержащую подмножество переменных из набора данных Airlinesmall. См. Квантили высокого вектора для данной вероятности для получения подробной информации о шагах по извлечению данных из высокого массива.

При работе с измерением, отличным от 1, функция квантилей вычисляет только точные квантили, так что она может эффективно выполнять вычисления с использованием алгоритма на основе сортировки (см. Алгоритмы) вместо алгоритма аппроксимации, основанного на T-Digest.

Вычислите точные квантили X по второму измерению для кумулятивных вероятностей 0,25, 0,5 и 0,75.

Когда функция работает по первому измерению, а p является вектором кумулятивных вероятностей, вы должны использовать алгоритм аппроксимации, основанный на t-дайджесте, для вычисления квантилей. Использование основанного на сортировке алгоритма для поиска квантилей по первому измерению высокого массива требует больших вычислительных ресурсов.

Вычислите приблизительные квантили X по первому измерению для кумулятивных вероятностей 0,25, 0,5 и 0,75. Поскольку размер по умолчанию равен 1, вам не нужно указывать значение для dim.

Оцените высокие массивы и занесите результаты в память с помощью функции gather.

Покажите первые пять строк точных квантилей X (по второму измерению) для кумулятивных вероятностей 0,25, 0,5 и 0,75.

Каждая строка матрицы Yexact содержит три квантиля соответствующей строки в X. Например, 30,5, 347,5 и 688,5 - это квантили 0,25, 0,5 и 0,75, соответственно, первой строки в X.

Покажите приблизительные квантили X (по первому измерению) для кумулятивных вероятностей 0,25, 0,5 и 0,75.

Каждый столбец матрицы Yapprox соответствует трем квантилям для каждого столбца матрицы X. Например, первый столбец Yapprox с элементами (–7, 0, 11) содержит квантили для первого столбца X.

Квантили высокой матрицы для N равномерно распределенных вероятностей

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

Когда вы выполняете вычисления на высоких массивах, MATLAB® использует либо параллельный пул (по умолчанию, если у вас есть Parallel Computing Toolbox ™), либо локальный сеанс MATLAB. Чтобы запустить пример, используя локальный сеанс MATLAB, когда у вас есть Parallel Computing Toolbox, измените глобальную среду выполнения с помощью функции mapreducer.

Создайте высокую матрицу X, содержащую подмножество переменных из набора данных Airlinesmall. См. Квантили высокого вектора для данной вероятности для получения подробной информации о шагах по извлечению данных из высокого массива.

Чтобы найти квантили, равномерно распределенные по первому измерению, необходимо использовать алгоритм аппроксимации, основанный на T-Digest. Использование алгоритма на основе сортировки (см. Алгоритмы) для поиска квантилей по первому измерению высокого массива требует больших вычислительных ресурсов.

Вычислите три квантиля, равномерно распределенных по первому измерению X. Поскольку размер по умолчанию равен 1, вам не нужно указывать значение для dim. Укажите «Метод», «приблизительный», чтобы использовать алгоритм аппроксимации.

Чтобы найти квантили, равномерно распределенные по любому другому измерению (dim не равно 1), quantile вычисляет только точные квантили, чтобы эффективно выполнять вычисления с помощью алгоритма на основе сортировки.

Вычислите три квантиля, равномерно распределенных по второму измерению X. Поскольку dim не равно 1, quantile по умолчанию возвращает точные квантили.

Оцените высокие массивы и занесите результаты в память с помощью функции gather.

Покажите приблизительные квантили X (по первому измерению) для трех равномерно распределенных кумулятивных вероятностей.

Каждый столбец матрицы Yapprox соответствует трем равномерно распределенным квантилям для каждого столбца матрицы X. Например, первый столбец Yapprox с элементами (–7, 0, 11) содержит квантили для первого столбца X.

Покажите первые пять строк точных квантилей X (по второму измерению) для трех равномерно распределенных кумулятивных вероятностей.

Каждая строка матрицы Yexact содержит три равномерно распределенных квантиля соответствующей строки в X. Например, 30,5, 347,5 и 688,5 - это квантили 0,25, 0,5 и 0,75, соответственно, первой строки в X.

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

X -

вектор входных данных | множество

Входные данные, заданные как вектор или массив.

Типы данных:двойной | Один

p - Скаляр кумулятивных вероятностей

| вектор

Кумулятивные вероятности, для которых нужно вычислить квантили, заданные как скаляр или вектор скаляров от 0 до 1.

Пример:0,3

Пример:[0,25, 0,5, 0,75]

Пример:(0: 0,25: 1)

Типы данных:двойной | Один

N -

положительное целое число квантилей

Количество квантилей для вычисления, заданное как положительное целое число. quantile возвращает N квантилей, которые делят набор данных на равномерно распределенные сегменты N +1.

Типы данных:двойной | Один

dim -

Положительное целое число размерности

Измерение, по которому запрашиваются квантили матрицы X, заданное как положительное целое число. Например, для матрицы X, когда dim = 1, квантиль возвращает квантиль (-ы) столбцов X; когда dim = 2, quantile возвращает квантиль (ы) строк X. Для многомерного массива X длина тусклого измерения Y равна длине p.

Типы данных:одиночный | двойной

vecdim - вектор размерностей

положительный целочисленный вектор

Вектор размеров, заданный как положительный целочисленный вектор. Каждый элемент vecdim представляет собой измерение входного массива X. В наименьшем заданном рабочем измерении (то есть измерении min (vecdim)) выходной сигнал Y имеет длину, равную количеству запрошенных квантилей (либо N, либо длина (p)). В каждом из оставшихся рабочих размеров Y имеет длину 1. Остальные размерные длины одинаковы для X и Y.

Например, рассмотрим массив X размером 2 на 3 на 3 с p = [0,2 0,4 0,6 0,8]. В этом случае quantile (X, p, [1 2]) возвращает массив, где каждая страница массива содержит квантили 0,2, 0,4, 0,6 и 0,8 элементов на соответствующей странице X. Поскольку 1 и 2 являются рабочими размерами, min ([1 2]) = 1 и length (p) = 4, на выходе получается массив 4 на 1 на 3.

Типы данных:одиночный | двойной

method - Метод вычисления квантилей

«точный» (по умолчанию) | 'приблизительный'

Метод расчета квантилей, заданный как «точный» или «приблизительный». По умолчанию квантиль возвращает точные квантили путем реализации алгоритма, использующего сортировку. Вы можете указать «метод», «приблизительный» для квантиля, чтобы возвращать приблизительные квантили, реализуя алгоритм, использующий T-Digest.

Типы данных:char | нить

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

Y -

скалярный квантили | множество

Квантили вектора данных или массива, возвращенные как скаляр или массив для одного или нескольких значений кумулятивных вероятностей.

Если X - вектор, то Y - скаляр или вектор с той же длиной, что и количество запрошенных квантилей (N или длина (p)). Y (i) содержит квантиль p (i).

Если X - это массив измерения d , то Y - это массив с длиной наименьшего рабочего измерения, равной количеству запрошенных квантилей (N или длина (p)).

Больше о

Многомерный массив

Многомерный массив представляет собой массив с более чем двух измерениях. Например, если X представляет собой массив размером 1 на 3 на 4, то X является трехмерным массивом.

Несинглетное измерение

Неодноточечных размерность массива является измерение, размер которого не равен 1. А первый неодноточечных размерности массива является первым измерением , которое удовлетворяет условию неодноточечных. Например, если X представляет собой массив размером 1 на 1 на 2 на 4, то третье измерение - это первое не одноэлементное измерение X.

Линейная интерполяция

Линейная интерполяция использует линейные полиномы, чтобы найти y i = f ( x i ), значения базовой функции Y = f ( X ) в точках вектора или массива x . Учитывая точки данных ( x 1 , y 1 ) и ( x 2 , y 2 ), где y 1 = f ( x 1 ) и y 2 = f ( x 2 ), линейная интерполяция находит y = f ( x ) для учитывая x междуx 1 и x 2 следующим образом:

у = е (х) = у 1 + (х - х 1) (х 2 - х 1) (у 2 - у 1).

Аналогичным образом , если 1,5 / п квантиль является у 1,5 / л и 2,5 / п квантиль является у 2,5 / п , то линейная интерполяция находит 2,3 / п квантиль у 2.3 / л в качестве

y 2.3 n = y 1.5 n + (2.3 n - 1.5 n) (2.5 n - 1.5 n) (y 2.5 n - y 1.5 n).

Т-дайджест

T-дайджест [2] - это вероятностная структура данных, которая является разреженным представлением эмпирической кумулятивной функции распределения (CDF) набора данных. T-дайджест полезен для вычисления приближений статистических данных на основе рангов (таких как процентили и квантили) на основе онлайн или распределенных данных таким образом, чтобы обеспечить контролируемую точность, особенно вблизи хвостов распределения данных.

Для данных, которые распределены по разным разделам, t-дайджест вычисляет оценки квантилей (и оценки процентилей) для каждого раздела данных отдельно, а затем объединяет оценки, сохраняя при этом постоянную память и постоянную относительную точность вычислений (q (1 - q ) для q- го квантиля). По этим причинам t-дайджест удобен для работы с высокими массивами.

Чтобы оценить квантили массива, который распределен по разным разделам, сначала создайте t-дайджест в каждом разделе данных. T-дайджест группирует данные в разделе и суммирует каждый кластер по значению центроида и накопленному весу, который представляет количество выборок, вносящих вклад в кластер. T-дайджест использует большие кластеры (широко разнесенные центроиды) для представления областей CDF, которые находятся около q = 0,5, и использует небольшие кластеры (близкорасположенные центроиды) для представления областей CDF, которые находятся около q = 0 или q = 1.

T-дайджест управляет размером кластера с помощью функции масштабирования, которая отображает квантиль q на индекс k с параметром сжатия δ. То есть,

k (q, δ) = δ ⋅ (sin - 1 (2 q - 1) π + 1 2),

где отображение k монотонно с минимальным значением k (0, δ ) = 0 и максимальным значением k (1, δ ) = δ . На следующем рисунке показана функция масштабирования для δ = 10.

Функция масштабирования переводит квантиль q в коэффициент масштабирования k , чтобы получить шаги переменного размера в q . В результате размеры кластеров не равны (больше вокруг центральных квантилей и меньше около q = 0 или q = 1). Кластеры меньшего размера обеспечивают лучшую точность по краям данных.

Чтобы обновить t-дайджест новым наблюдением, у которого есть вес и местоположение, найдите кластер, ближайший к новому наблюдению. Затем добавьте вес и обновите центроид кластера на основе средневзвешенного значения, при условии, что обновленный вес кластера не превышает ограничение размера.

Вы можете объединить независимые t-дайджесты из каждого раздела данных, взяв объединение t-дайджестов и объединив их центроиды. Чтобы объединить t-дайджесты, сначала отсортируйте кластеры из всех независимых t-дайджестов в порядке убывания весов кластеров. Затем объедините соседние кластеры, когда они достигнут ограничения по размеру, чтобы сформировать новый t-дайджест.

После того, как вы сформируете t-дайджест, который представляет полный набор данных, вы можете оценить конечные точки (или границы) каждого кластера в t-дайджесте, а затем использовать интерполяцию между конечными точками каждого кластера, чтобы найти точные оценки квантилей. .

Алгоритмы

Для n -элементного вектора X квантиль вычисляет квантили, используя алгоритм на основе сортировки следующим образом:

Отсортированные элементы в X принимаются как (0,5 / n ), (1,5 / n ),. ([ n - 0,5] / n ) квантили. Например:

Для вектора данных из пяти элементов, таких как , отсортированные элементы соответственно соответствуют квантилям 0,1, 0,3, 0,5, 0,7, 0,9.

Для вектора данных из шести элементов, таких как , отсортированные элементы соответственно соответствуют (0,5 / 6), ( 1,5 / 6), (2,5 / 6), (3,5 / 6), (4,5 / 6), (5,5 / 6) квантилей.

quantile использует линейную интерполяцию для вычисления квантилей для вероятностей от (0,5 / n ) до ([ n - 0,5] / n ).

Для квантилей, соответствующих вероятностям вне этого диапазона, квантиль присваивает минимальные или максимальные значения элементов в X.

quantile рассматривает NaN как отсутствующие значения и удаляет их.

использованная литература

[1] Лэнгфорд, Э. «Квартили в элементарной статистике», Журнал статистики образования . Vol. 14, № 3, 2006.

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

Высокие массивы Выполняйте

вычисления с массивами, в которых строк больше, чем умещается в памяти.

Примечания по использованию и ограничения:

Y = квантиль (X, p) и Y = квантиль (X, N) возвращают точные квантили (с использованием алгоритма на основе сортировки), только если X - это высокий вектор-столбец.

Y = quantile (__, dim) возвращает точные квантили, только если существует одно из этих условий:

X - высокий вектор-столбец.

X - высокий массив, а dim - не 1. Например, quantile (X, p, 2) возвращает точные квантили по строкам большого массива X.

Если X - высокий массив, а dim равно 1, то вы должны указать «Метод», «приблизительный», чтобы использовать алгоритм аппроксимации, основанный на Т-дайджесте, для вычисления квантилей. Например, квантиль (X, p, 1, «Метод», «приблизительный») возвращает приблизительные квантили по столбцам высокого массива X.

Y = quantile (__, vecdim) возвращает точные квантили, только если существует одно из этих условий:

X - высокий вектор-столбец.

X - длинный массив, а vecdim не включает 1. Например, если X является массивом 3 на 5 на 2, то quantile (X, p, [2,3]) возвращает точные квантили элементов в каждом срезе X (i.).

X - высокий массив, а vecdim включает в себя 1 и все не одиночные размеры X. Например, если X является массивом 10 на 1 на 4, то quantile (X, p, [1 3]) возвращает точные квантили элементов в X (:, 1, :).

Если X - высокий массив, а vecdim включает 1, но не включает все неодноэлементные размеры X, тогда вы должны указать «Метод», «приблизительный», чтобы использовать алгоритм аппроксимации. Например, если X представляет собой массив размером 10 на 1 на 4, вы можете использовать квантиль (X, p, [1 2], 'Метод', 'приблизительно'), чтобы найти приблизительные квантили каждой страницы X .

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

Генерация кода C / C ++ Генерация кода

C и C ++ с помощью MATLAB® Coder ™.

Примечания по использованию и ограничения:

Входные аргументы all и vecdim не поддерживаются.

Аргумент пары имя-значение "Метод" не поддерживается.

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

Если вы не укажете входной аргумент dim, рабочий (или рабочий) размер может отличаться в сгенерированном коде. В результате могут возникнуть ошибки времени выполнения. Для получения дополнительных сведений см. Автоматическое ограничение размера (MATLAB Coder).

Если выходной сигнал Y является вектором, ориентация Y отличается от MATLAB ®, когда все следующие верны:

Вы не поставляете тусклый.

X - это массив переменного размера, а не вектор переменного размера во время компиляции, но X - это вектор во время выполнения.

Ориентация вектора X не соответствует ориентации вектора p.

В этом случае выход Y соответствует ориентации X, а не ориентации p.

Массивы графических процессоров

Ускорьте выполнение кода за счет работы на графическом процессоре (GPU) с помощью Parallel Computing Toolbox ™.

Примечания по использованию и ограничения:

Входные аргументы all и vecdim не поддерживаются.

Аргумент пары имя-значение "Метод" не поддерживается.

Для получения дополнительной информации см. Выполнение функций MATLAB на графическом процессоре (Parallel Computing Toolbox).