Квантили набора данных
возвращает квантили элементов в векторе данных или массиве Y = quantile(X,p)X для кумулятивной вероятности или вероятностей p в интервале [0,1].
Если X является вектором, то Y является скаляром или вектором, имеющим ту же длину, что и p.
Если X является матрицей, то Y является вектором строки или матрицей, где число строк Y равна длине p.
Для многомерных массивов: quantile работает по первому несинглтонному размеру X.
возвращает квантили для Y = quantile(X,N)N равномерно разнесенные кумулятивные вероятности (1/(N + 1), 2/(N + 1), ..., N/(N + 1)) для целого числа N>1.
Если X является вектором, то Y скаляр или вектор с длиной N.
Если X является матрицей, то Y является матрицей, где число строк Y равно N.
Для многомерных массивов: quantile работает по первому несинглтонному размеру X.
возвращает квантилы по измерениям, указанным в векторе Y = quantile(___,vecdim)vecdim для любого из первых двух синтаксисов. Например, если X является матрицей, то quantile(X,0.5,[1 2]) возвращает квантиль 0,5 всех элементов X поскольку каждый элемент матрицы содержится в срезе массива, определяемом размерами 1 и 2.
Вычислите квантили набора данных для указанных вероятностей.
Создайте набор данных размера 10.
rng('default'); % for reproducibility x = normrnd(0,1,1,10)
x = 1×10
0.5377 1.8339 -2.2588 0.8622 0.3188 -1.3077 -0.4336 0.3426 3.5784 2.7694
Вычислите квантиль 0,3.
y = quantile(x,0.30)
y = -0.0574
Вычислите квантили для кумулятивных вероятностей 0,025, 0,25, 0,5, 0,75 и 0,975.
y = quantile(x,[0.025 0.25 0.50 0.75 0.975])
y = 1×5
-2.2588 -0.4336 0.4401 1.8339 3.5784
Вычислите квантили набора данных для заданного числа квантилей.
Создайте набор данных размера 10.
rng('default'); % for reproducibility x = normrnd(0,1,1,10)
x = 1×10
0.5377 1.8339 -2.2588 0.8622 0.3188 -1.3077 -0.4336 0.3426 3.5784 2.7694
Вычислите четыре равномерно разнесенных квантиля.
y = quantile(x,4)
y = 1×4
-0.8706 0.3307 0.6999 2.3017
Используя y = quantile(x,[0.2,0.4,0.6,0.8]) является другим способом возврата четырех равномерно разнесенных квантилей.
Вычислите квантили вдоль столбцов и строк матрицы данных для указанных вероятностей.
Создайте матрицу данных 4 на 6.
rng default % For reproducibility X = normrnd(0,1,4,6)
X = 4×6
0.5377 0.3188 3.5784 0.7254 -0.1241 0.6715
1.8339 -1.3077 2.7694 -0.0631 1.4897 -1.2075
-2.2588 -0.4336 -1.3499 0.7147 1.4090 0.7172
0.8622 0.3426 3.0349 -0.2050 1.4172 1.6302
Вычислите квантиль 0,3 для каждого столбца X (dim = 1).
y = quantile(X,0.3,1)
y = 1×6
-0.3013 -0.6958 1.5336 -0.1056 0.9491 0.1078
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).
y = quantile(X,0.3,2)
y = 4×1
0.3844
-0.8642
-1.0750
0.4985
quantile возвращает вектор столбца y при вычислении одного квантиля для каждой строки матрицы. Например, 0.3844 - 0.3 квантиль первой строки X с элементами (0,5377, 0,3188, 3,5784, 0,7254, -0,1241, 0,6715).
Вычислите равномерно разнесенных квантилей вдоль столбцов и строк матрицы данных.
Создайте матрицу данных 6 на 10.
rng('default'); % for reproducibility X = unidrnd(10,6,7)
X = 6×7
9 3 10 8 7 8 7
10 6 5 10 8 1 4
2 10 9 7 8 3 10
10 10 2 1 4 1 1
7 2 5 9 7 1 5
1 10 10 10 2 9 4
Вычислите три равномерно разнесенных квантиля для каждого столбца X (dim = 1).
y = quantile(X,3,1)
y = 3×7
2.0000 3.0000 5.0000 7.0000 4.0000 1.0000 4.0000
8.0000 8.0000 7.0000 8.5000 7.0000 2.0000 4.5000
10.0000 10.0000 10.0000 10.0000 8.0000 8.0000 7.0000
Каждый столбец матрицы y соответствует трем равномерно разнесенным квантилям каждого столбца матрицы X. Например, первый столбец y с элементами (2, 8, 10) имеет квантили для первого столбца X с элементами (9, 10, 2, 10, 7, 1). y = quantile(X,3) возвращает тот же ответ, поскольку значение по умолчанию dim равно 1.
Вычислите три равномерно разнесенных квантиля для каждой строки X (dim = 2).
y = quantile(X,3,2)
y = 6×3
7.0000 8.0000 8.7500
4.2500 6.0000 9.5000
4.0000 8.0000 9.7500
1.0000 2.0000 8.5000
2.7500 5.0000 7.0000
2.5000 9.0000 10.0000
Каждая строка матрицы y соответствует трем равномерно разнесенным квантилям каждой строки матрицы X. Например, первая строка y с элементами (7, 8, 8.75) имеет квантили для первой строки X с элементами (9, 3, 10, 8, 7, 8, 7).
Вычислите квантили многомерного массива для указанных вероятностей с помощью 'all' и vecdim входные аргументы.
Создание массива 3 на 5 на 2 X. Укажите вектор вероятностей p.
X = reshape(1:30,[3 5 2])
X =
X(:,:,1) =
1 4 7 10 13
2 5 8 11 14
3 6 9 12 15
X(:,:,2) =
16 19 22 25 28
17 20 23 26 29
18 21 24 27 30
p = [0.25 0.75];
Вычислите 0,25 и 0,75 квантилей всех элементов в X.
Yall = quantile(X,p,'all')Yall = 2×1
8
23
Yall(1) представляет собой 0,25 квантиль X, и Yall(2) равен 0,75 квантиля X.
Вычислите 0,25 и 0,75 квантилей для каждой страницы X путем задания размеров 1 и 2 в качестве рабочих размеров.
Ypage = quantile(X,p,[1 2])
Ypage =
Ypage(:,:,1) =
4.2500
11.7500
Ypage(:,:,2) =
19.2500
26.7500
Например, Ypage(1,1,1) - 0,25 квантиль первой страницы X, и Ypage(2,1,1) - 0,75 квантиля первой страницы X.
Вычислите 0,25 и 0,75 квантилей элементов в каждом X(i,:,:) путем задания размеров 2 и 3 в качестве рабочих размеров.
Yrow = quantile(X,p,[2 3])
Yrow = 3×2
7 22
8 23
9 24
Например, Yrow(3,1) - 0,25 квантиль элементов в X(3,:,:), и Yrow(3,2) - 0,75 квантиля элементов в X(3,:,:).
Найти медиану и квартили вектора, x, с четным числом элементов.
Введите данные.
x = [2 5 6 10 11 13]
x = 1×6
2 5 6 10 11 13
Рассчитать медиану x.
y = quantile(x,0.50)
y = 8
Расчет квартилей x.
y = quantile(x,[0.25, 0.5, 0.75])
y = 1×3
5 8 11
Используя y = quantile(x,3) является еще одним способом вычисления квартилей x.
Эти результаты могут отличаться от определений учебника, поскольку quantile использует Линейную интерполяцию (Linear Interpolation) для поиска медианы и квартилей.
Найти медиану и квартили вектора, x, с нечетным числом элементов.
Введите данные.
x = [2 4 6 8 10 12 14]
x = 1×7
2 4 6 8 10 12 14
Найти медиану x.
y = quantile(x,0.50)
y = 8
Найти квартили x.
y = quantile(x,[0.25, 0.5, 0.75])
y = 1×3
4.5000 8.0000 11.5000
Используя y = quantile(x,3) является еще одним способом вычисления квартилей x.
Эти результаты могут отличаться от определений учебника, поскольку quantile использует Линейную интерполяцию (Linear Interpolation) для поиска медианы и квартилей.
Вычислите точные и приблизительные квантили вектора высокого столбца для данной вероятности.
При выполнении вычислений в массивах TALL MATLAB ® использует либо параллельный пул (по умолчанию при наличии Toolbox™ Parallel Computing), либо локальный сеанс MATLAB. Для выполнения примера с использованием локального сеанса MATLAB при наличии панели инструментов Parallel Computing Toolbox измените глобальную среду выполнения с помощью mapreducer функция.
mapreducer(0)
Создание хранилища данных для airlinesmall набор данных. Удовольствие 'NA' значения как отсутствующие данные, так что datastore заменяет их на NaN значения. Укажите для работы с ArrTime переменная.
ds = datastore('airlinesmall.csv','TreatAsMissing','NA',... 'SelectedVariableNames','ArrTime');
Создайте в верхней части хранилища данных таблицу высокого уровня и извлеките данные из таблицы высокого уровня в вектор высокого уровня.
t = tall(ds) % Tall tablet =
Mx1 tall table
ArrTime
_______
735
1124
2218
1431
746
1547
1052
1134
:
:
x = t{:,:} % Tall vectorx =
Mx1 tall double column vector
735
1124
2218
1431
746
1547
1052
1134
:
:
Вычисление точного квантиля x для p = 0.5. Поскольку X является вектором высокого столбца и p является скаляром, quantile возвращает точное значение квантиля по умолчанию.
p = 0.5; % Cumulative probability
yExact = quantile(x,p)yExact =
tall double
?
Вычислите приблизительное квантиль x для p = 0.5. Определить 'Method','approximate' использовать алгоритм аппроксимации на основе T-Digest для вычисления квантилей.
yApprox = quantile(x,p,'Method','approximate')
yApprox =
MxNx... tall double array
? ? ? ...
? ? ? ...
? ? ? ...
: : :
: : :
Оцените массивы tall и внесите результаты в память с помощью gather.
[yExact,yApprox] = gather(yExact,yApprox)
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 0.57 sec - Pass 3 of 4: Completed in 0.83 sec - Pass 4 of 4: Completed in 0.62 sec Evaluation completed in 4.4 sec
yExact = 1522
yApprox = 1.5220e+03
Значения приблизительного квантиля и точного квантиля совпадают с показанными четырьмя цифрами.
Вычислите точные и приблизительные квантили высокой матрицы для заданных кумулятивных вероятностей по разным измерениям.
При выполнении вычислений в массивах TALL MATLAB ® использует либо параллельный пул (по умолчанию при наличии Toolbox™ Parallel Computing), либо локальный сеанс MATLAB. Для выполнения примера с использованием локального сеанса MATLAB при наличии панели инструментов Parallel Computing Toolbox измените глобальную среду выполнения с помощью mapreducer функция.
mapreducer(0)
Создание высокой матрицы X содержащий подмножество переменных из airlinesmall набор данных. Дополнительные сведения о шагах извлечения данных из массива высокого уровня см. в разделе Квантили вектора высокого уровня для заданной вероятности.
varnames = {'ArrDelay','ArrTime','DepTime','ActualElapsedTime'}; % Subset of variables in the data set
ds = datastore('airlinesmall.csv','TreatAsMissing','NA',...
'SelectedVariableNames',varnames); % Datastore
t = tall(ds); % Tall table
X = t{:,varnames} % Tall matrixX =
Mx4 tall double matrix
8 735 642 53
8 1124 1021 63
21 2218 2055 83
13 1431 1332 59
4 746 629 77
59 1547 1446 61
3 1052 928 84
11 1134 859 155
: : : :
: : : :
При работе вдоль размера, который не равен 1, quantile функция вычисляет только точные квантили, так что она может эффективно выполнять вычисления, используя алгоритм, основанный на сортировке (см. Алгоритмы), вместо алгоритма аппроксимации, основанного на T-Digest.
Вычислите точные квантили X вдоль второго размера для кумулятивных вероятностей 0,25, 0,5 и 0,75.
p = [0.25 0.50 0.75]; % Vector of cumulative probabilities
Yexact = quantile(X,p,2)Yexact =
MxNx... tall double array
? ? ? ...
? ? ? ...
? ? ? ...
: : :
: : :
Когда функция работает вдоль первого измерения и p является вектором кумулятивных вероятностей, для вычисления квантилей необходимо использовать алгоритм аппроксимации на основе t-дайджеста. Использование алгоритма, основанного на сортировке, для нахождения квантилей вдоль первой размерности высокого массива является вычислительно интенсивным.
Вычислите приблизительные квантили X вдоль первого размера для кумулятивных вероятностей 0,25, 0,5 и 0,75. Поскольку размер по умолчанию равен 1, нет необходимости указывать значение для dim.
Yapprox = quantile(X,p,'Method','approximate')
Yapprox =
MxNx... tall double array
? ? ? ...
? ? ? ...
? ? ? ...
: : :
: : :
Оцените массивы tall и внесите результаты в память с помощью gather.
[Yexact,Yapprox] = gather(Yexact,Yapprox);
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 3 sec Evaluation completed in 3.9 sec
Показать первые пять строк точных квантилей X (вдоль второго размера) для кумулятивных вероятностей 0,25, 0,5 и 0,75.
Yexact(1:5,:)
ans = 5×3
103 ×
0.0305 0.3475 0.6885
0.0355 0.5420 1.0725
0.0520 1.0690 2.1365
0.0360 0.6955 1.3815
0.0405 0.3530 0.6875
Каждая строка матрицы Yexact содержит три квантиля соответствующей строки в X. Например, 30.5, 347.5, и 688.5 равны 0,25, 0,5 и 0,75 квантилей соответственно первой строки в X.
Показать приблизительные квантили X (вдоль первой размерности) для кумулятивных вероятностей 0,25, 0,5 и 0,75.
Yapprox
Yapprox = 3×4
103 ×
-0.0070 1.1149 0.9321 0.0700
0 1.5220 1.3350 0.1020
0.0110 1.9180 1.7400 0.1510
Каждый столбец матрицы Yapprox соответствует трем квантилям для каждого столбца матрицы X. Например, первый столбец Yapprox с элементами (-7, 0, 11) содержит квантили для первого столбца X.
Вычислите точные и приблизительные квантили вдоль различных размеров высокой матрицы для N равномерно разнесенные кумулятивные вероятности.
При выполнении вычислений в массивах TALL MATLAB ® использует либо параллельный пул (по умолчанию при наличии Toolbox™ Parallel Computing), либо локальный сеанс MATLAB. Для выполнения примера с использованием локального сеанса MATLAB при наличии панели инструментов Parallel Computing Toolbox измените глобальную среду выполнения с помощью mapreducer функция.
mapreducer(0)
Создание высокой матрицы X содержащий подмножество переменных из airlinesmall набор данных. Дополнительные сведения о шагах извлечения данных из массива высокого уровня см. в разделе Квантили вектора высокого уровня для заданной вероятности.
varnames = {'ArrDelay','ArrTime','DepTime','ActualElapsedTime'}; % Subset of variables in the data set
ds = datastore('airlinesmall.csv','TreatAsMissing','NA',...
'SelectedVariableNames',varnames); % Datastore
t = tall(ds); % Tall table
X = t{:,varnames}X =
Mx4 tall double matrix
8 735 642 53
8 1124 1021 63
21 2218 2055 83
13 1431 1332 59
4 746 629 77
59 1547 1446 61
3 1052 928 84
11 1134 859 155
: : : :
: : : :
Чтобы найти равномерно расположенные квантили вдоль первой размерности, необходимо использовать алгоритм аппроксимации на основе T-Digest. Использование основанного на сортировке алгоритма (см. Алгоритмы) для поиска квантилей вдоль первой размерности высокого массива является вычислительно интенсивным.
Вычислите три равномерно разнесенных квантиля вдоль первой размерности X. Поскольку размер по умолчанию равен 1, нет необходимости указывать значение для dim. Определить 'Method','approximate' для использования алгоритма аппроксимации.
N = 3; % Number of quantiles Yapprox = quantile(X,N,'Method','approximate')
Yapprox =
MxNx... tall double array
? ? ? ...
? ? ? ...
? ? ? ...
: : :
: : :
Чтобы найти равномерно разнесенные квантили вдоль любого другого измерения (dim не является 1), quantile вычисляет только точные квантили, так что он может эффективно выполнять вычисления, используя алгоритм, основанный на сортировке.
Вычислите три равномерно разнесенных квантиля вдоль второй размерности X. Поскольку dim не является 1, quantile возвращает точные квантили по умолчанию.
Yexact = quantile(X,N,2)
Yexact =
MxNx... tall double array
? ? ? ...
? ? ? ...
? ? ? ...
: : :
: : :
Оцените массивы tall и внесите результаты в память с помощью gather.
[Yapprox,Yexact] = gather(Yapprox,Yexact);
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 3 sec Evaluation completed in 3.8 sec
Показать приблизительные квантили X (вдоль первого размера) для трех равномерно разнесенных кумулятивных вероятностей.
Yapprox
Yapprox = 3×4
103 ×
-0.0070 1.1149 0.9321 0.0700
0 1.5220 1.3350 0.1020
0.0110 1.9180 1.7400 0.1510
Каждый столбец матрицы Yapprox соответствует трем равномерно распределенным квантилям для каждого столбца матрицы X. Например, первый столбец Yapprox с элементами (-7, 0, 11) содержит квантили для первого столбца X.
Показать первые пять строк точных квантилей X (вдоль второго размера) для трех равномерно разнесенных кумулятивных вероятностей.
Yexact(1:5,:)
ans = 5×3
103 ×
0.0305 0.3475 0.6885
0.0355 0.5420 1.0725
0.0520 1.0690 2.1365
0.0360 0.6955 1.3815
0.0405 0.3530 0.6875
Каждая строка матрицы Yexact содержит три равномерно разнесенных квантиля соответствующей строки в X. Например, 30.5, 347.5, и 688.5 равны 0,25, 0,5 и 0,75 квантилей соответственно первой строки в X.
X - Входные данныеВходные данные, указанные как вектор или массив.
Типы данных: double | single
p - Совокупные вероятностиКумулятивные вероятности, для которых вычисляются квантили, заданные как скаляр или вектор скаляров от 0 до 1.
Пример: 0.3
Пример: [0,25, 0,5, 0,75]
Пример: (0: 0,25: 1)
Типы данных: double | single
N - количество квантилей;Число вычисляемых квантилей, указанное как положительное целое число. quantile прибыль N квантили, которые делят набор данных на равномерно распределенные N+ 1 сегмент.
Типы данных: double | single
dim - Размерность Измерение, вдоль которого находятся квантили матрицы X затребованы, указаны как положительное целое число. Например, для матрицы X, когда dim = 1, quantile возвращает квантиль (ы) столбцов X; когда dim = 2, quantile возвращает квантиль (ы) строк X. Для многомерного массива X, длина dim-й размер Y совпадает с длиной p.
Типы данных: single | double
vecdim - Вектор размеровВектор размеров, заданный как положительный целочисленный вектор. Каждый элемент vecdim представляет измерение входного массива X. В наименьшем указанном рабочем измерении (то есть измерении min(vecdim)), выход Y имеет длину, равную количеству запрошенных квантилей (либо N или length(p)). В каждом из остальных рабочих размеров, Y имеет длину 1. Другие длины размеров одинаковы для X и Y.
Например, рассмотрите множество 2 на 3 на 3 X с 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.
Типы данных: single | double
method - Метод вычисления квантилей'exact' (по умолчанию) | 'approximate'Метод вычисления квантилей, указанный как 'exact' или 'approximate'. По умолчанию quantile возвращает точные квантили, реализуя алгоритм, использующий сортировку. Можно указать 'method','approximate' для quantile для возврата приближенных квантилей путем реализации алгоритма, использующего T-Digest.
Типы данных: char | string
Y - КвантилиКвантили вектора или массива данных, возвращаемые как скаляр или массив для одного или нескольких значений кумулятивных вероятностей.
Если X является вектором, то Y является скаляром или вектором с той же длиной, что и количество запрошенных квантилей (N или length(p)). Y(i) содержит p(i) квантиль.
Если X является массивом размерности d, то Y - массив с длиной наименьшей рабочей размерности, равной количеству запрошенных квантилей (N или length(p)).
Многомерный массив - это массив с более чем двумя измерениями. Например, если X является массивом 1 на 3 на 4, то X является 3-D массивом.
Несинглтон-размер массива - это размер, размер которого не равен 1. Первое несинглетонное измерение массива - это первое измерение, удовлетворяющее условию несинглтона. Например, если X множество 1 на 1 на 2 на 4, тогда третье измерение - первое измерение неединичного предмета X.
Линейная интерполяция использует линейные многочлены для нахождения yi = f(xi), значения базовой функции Y = f (X) в точках вектора или массива x. Учитывая точки данных (x1, y1) и (x2, y2), где y1 = f (x1) и y2 = f(x2), линейная интерполяция находит y = f (x) для данного x между x1 и x2 следующим образом:
x1) (y2 − y1).
Аналогично, если квантиль 1,5/n равен y1,5/n и квантиль 2,5/n равен y2,5/n, то линейная интерполяция находит квантиль 2,3/n y2,3/n как
T-дайджест [2] - вероятностная структура данных, являющаяся разреженным представлением эмпирической кумулятивной функции распределения (CDF) набора данных. T-дайджест полезен для вычисления аппроксимаций основанной на рангах статистики (таких как процентили и квантили) из онлайновых или распределенных данных таким образом, чтобы обеспечить управляемую точность, особенно вблизи хвостов распределения данных.
Для данных, которые распределены в различных разделах, t-дайджест вычисляет оценки квантилей (и оценки процентилей) для каждого раздела данных отдельно, а затем объединяет оценки с сохранением постоянной границы памяти и постоянной относительной точности вычисления ( q) для qth квантиля). По этим причинам t-дайджест практичен для работы с массивами таллов.
Чтобы оценить квантили массива, который распределен в различных разделах, сначала создайте t-дайджест в каждом разделе данных. T-дайджест группирует данные в разделе и суммирует каждый кластер по значению центроида и накопленному весу, который представляет количество выборок, вносящих вклад в кластер. T-дайджест использует большие кластеры (широко разнесенные центроиды) для представления областей CDF, которые находятся вблизи q = 0.5 и использует небольшие кластеры (плотно разнесенные центроиды) для представления областей CDF, которые находятся вблизи q = 0 или q = 1.
T-дайджест управляет размером кластера, используя функцию масштабирования, которая отображает квантиль q в индекс k с параметром сжатия . То есть
1) δ + 12),
где отображение k монотонно с минимальным значением k (0, δ) = 0 и максимальным значением k (1, δ) = δ. На следующем рисунке показана функция масштабирования для δ = 10.

Функция масштабирования преобразует квантиль q в коэффициент масштабирования k, чтобы дать шаги переменного размера в q. В результате размеры кластера неравны (больше вокруг центральных квантилей и меньше вблизи q = 0 или q = 1). Меньшие кластеры обеспечивают лучшую точность вблизи краев данных.
Чтобы обновить t-дайджест с новым наблюдением, которое имеет вес и местоположение, найдите кластер, ближайший к новому наблюдению. Затем добавьте вес и обновите центроид кластера на основе средневзвешенного значения при условии, что обновленный вес кластера не превышает ограничения по размеру.
Можно объединить независимые t-дайджесты из каждого раздела данных, взяв объединение t-дайджестов и объединив их центроиды. Чтобы объединить t-дайджесты, сначала отсортируйте кластеры из всех независимых t-дайджестов в порядке убывания масс кластеров. Затем объедините соседние кластеры, когда они удовлетворяют ограничению размера, чтобы сформировать новый t-дайджест.
После формирования t-дайджеста, представляющего полный набор данных, можно оценить конечные точки (или границы) каждого кластера в t-дайджесте, а затем использовать интерполяцию между конечными точками каждого кластера, чтобы найти точные оценки квантилей.
Для вектора n-элемента X, quantile вычисляет квантили, используя алгоритм, основанный на сортировке, следующим образом:
Отсортированные элементы в X принимают за квантили (0,5/n), (1,5/n),..., ([n-0,5 ]/n). Например:
Для вектора данных из пяти элементов, таких как {6, 3, 2, 10, 1}, отсортированные элементы {1, 2, 3, 6, 10} соответственно соответствуют квантилям 0,1, 0,3, 0,5, 0,7, 0,9.
Для вектора данных из шести элементов, таких как {6, 3, 2, 10, 8, 1}, отсортированные элементы {1, 2, 3, 6, 8, 10} соответственно соответствуют квантилям (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).
Для квантилей, соответствующих вероятностям за пределами этого диапазона, quantile назначает минимальные или максимальные значения элементов в X.
quantile удовольствия NaNs как отсутствующие значения и удаляет их.
[1] Лэнгфорд, Э. «Квартили в начальной статистике», Журнал статистики образования. т. 14, № 3, 2006.
[2] Напоминание, Т. и О. Эртль. «Вычисление чрезвычайно точных квантилей с помощью T-Digests». Август 2017 года.
Примечания и ограничения по использованию:
Y = quantile(X,p) и Y = quantile(X,N) возвращает точные квантили (используя алгоритм, основанный на сортировке), только если X - вектор высокого столбца.
Y = quantile(__,dim) возвращает точные квантили, только если существует одно из следующих условий:
X - вектор высокого столбца.
X является высоким массивом и dim не является 1. Например, quantile(X,p,2) возвращает точные квантили вдоль строк массива высокого уровня X.
Если X является высоким массивом и dim является 1, то необходимо указать 'Method','approximate' использовать алгоритм аппроксимации на основе T-Digest для вычисления квантилей. Например, quantile(X,p,1,'Method','approximate') возвращает аппроксимированные квантили вдоль столбцов массива высокого уровня 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, то необходимо указать 'Method','approximate' для использования алгоритма аппроксимации. Например, если X является массивом 10 на 1 на 4, можно использовать quantile(X,p,[1 2],'Method','approximate') найти приблизительные квантили каждой страницы X.
Дополнительные сведения см. в разделе Массивы Tall.
Примечания и ограничения по использованию:
'all' и vecdim входные аргументы не поддерживаются.
'Method' аргумент пары имя-значение не поддерживается.
dim входной аргумент должен быть константой времени компиляции.
Если не указать dim входной аргумент, рабочая (или операционная) размерность может отличаться в сгенерированном коде. В результате могут возникать ошибки времени выполнения. Дополнительные сведения см. в разделе Автоматическое ограничение размеров (кодер MATLAB).
Если выходные данные Y - вектор, ориентация Y отличается от MATLAB ®, если все следующие значения являются истинными:
Вы не поставляете dim.
X является массивом переменного размера, а не вектором переменного размера во время компиляции, но X является вектором во время выполнения.
Ориентация вектора X не соответствует ориентации вектора p.
В этом случае выходные данные Y соответствует ориентации X, а не ориентация p.
Дополнительные сведения о создании кода см. в разделах Введение в создание кода и Общий рабочий процесс создания кода.
Примечания и ограничения по использованию:
'all' и vecdim входные аргументы не поддерживаются.
'Method' аргумент пары имя-значение не поддерживается.
Дополнительные сведения см. в разделе Запуск функций MATLAB на графическом процессоре (панель инструментов параллельных вычислений).
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.