主要内容

斯蒂利韦

数据集的定量

描述

例子

y=分位数(XP.返回数据矢量或数组中元素的定量X用于累积概率或概率P.在区间[0,1]内。

  • 如果X是一个矢量,然后y是标量或矢量长度与P.

  • 如果X是一个矩阵,然后y行向量或者矩阵的行数是多少y等于的长度P.

  • 多维阵列斯蒂利韦作用于第一nonsingleton维度X

例子

y=分位数(XN返回量级N均匀间隔累积概率(1 /(N+ 1), 2 / (N+ 1),......,N/ (N+ 1))对于整数N> 1。

  • 如果X是一个矢量,然后y是标量还是有长度的向量N

  • 如果X是一个矩阵,然后y矩阵的行数是多少y等于N

  • 多维阵列斯蒂利韦作用于第一nonsingleton维度X

例子

y=分位数(___, '所有')的所有元素的分位数X对于前两种语法中的任何一种。

例子

y=分位数(___暗淡沿操作维度返回定量暗淡对于前两种语法中的任何一种。

例子

y=分位数(___vecdim.返回向量中指定维度上的分位数vecdim.对于前两种语法中的任何一种。例如,如果X是一个矩阵,然后分位数(X, 0.5, 2 [1])的所有元素的0.5分位数X因为矩阵的每个元素包含在由尺寸1和2定义的阵列切片中。

例子

y=分位数(___,'方法',方法的值返回精确或近似分位数方法,使用先前语法中的任何输入参数组合。

例子

全部折叠

为指定的概率计算数据集的分位数。

生成大小10的数据集。

RNG('默认');重复性的%x = normrnd(0,1,1,10)
X =1×100.5377 1.8339 -2.2588 0.8622 0.3188 -1.3077 -0.4336 0.3426 3.5784 2.7694

计算0.3分位数。

y =分位数(x, 0.30)
Y = -0.0574.

计算累积概率0.025、0.25、0.5、0.75和0.975的分位数。

Y =分位数(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('默认');重复性的%x = normrnd(0,1,1,10)
X =1×100.5377 1.8339 -2.2588 0.8622 0.3188 -1.3077 -0.4336 0.3426 3.5784 2.7694

计算四个均匀间隔的量级。

y = smianile(x,4)
y =1×4-0.8706 0.3307 0.6999 2.3017

使用y = smianile(x,[0.2,0.4,0.6,0.8])是返回四个均匀间隔量子的另一种方法。

为指定概率的列和行的列和行计算定量。

生成一个4 × 6的数据矩阵。

RNG.默认的重复性的%X = NORMRND(0,1,4,6)
X =4×60.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.7172 0.8622 0.3426 3.0349 -0.2050 1.4172 1.6302 1.4172 1.6302

计算每列的0.3分量X暗淡= 1)。

y = smianile(x,0.3,1)
y =1×60.3013 0.6958 1.5336 0.1056 0.9491 0.1078

斯蒂利韦返回一排矢量y当为矩阵的每一列计算一个分位数时。例如,-0.3013的第一列的0.3分位数是X元素(0.5377,1.8339,-2.2588,0.8622)。因为。的默认值暗淡是1,你可以返回相同的结果y =分位数(X, 0.3)

计算每行0.3分量X暗淡= 2)。

y = smianile(x,0.3,2)
y =4×10.3844 -0.8642 -1.0750 0.4985

斯蒂利韦返回列向量y当为矩阵的每一行计算一个分位数时。例如0.3844的第一行的0.3分位数是X具有元素(0.5377,3188,3.5784,0.7254,0.1241,0.6715)。

计算 N 沿着数据矩阵的列和行均匀间隔的分位数。

生成6×10数据矩阵。

RNG('默认');重复性的%x = Unidrnd(10,6,7)
X =6×79 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暗淡= 1)。

y =分位数(X 3 - 1)
y =3×72.0000 3.0000 7.0000 7.0000 1.0000 1.0000 8.0000 8.0000 7.0000 8.0000 7.0000 2.0000 4.0000 10.0000 10.0000 10:0000 10.0000 8.0000 8:0000 8.0000 7:0000

每列矩阵y对应于每列矩阵的三个均匀间隔量子X.例如,第一列y元素(2,8,10)的第一列的分位数为X元素(9,10,2,10,7,1)。y = smianile(x,3)返回相同的答案,因为默认值暗淡是1。

为每一行计算三个均匀间隔的分位数X暗淡= 2)。

y =分位数(X 3 2)
y =6×37.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)。

通过使用通过使用指定概率计算多维数组的定量“所有”vecdim.输入参数。

创建一个3 × 5 × 2的数组X.指定概率的向量P.

X =重塑(1:30,[3 5 2])
X = X(:,: 1) = 14 7 10 13 25 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 =分位数(X p“所有”
Yall =2×18日23

Yall (1)0.25分位数是X,Yall (2)0.75分位数是X

计算每页0.25和0.75定位X通过指定维度1和2作为操作维度。

pagage =分位数(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(我::)通过指定尺寸2和3作为操作尺寸切片。

Yrow = quantile(X,p,[2 3])
yrow =3×27 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×62 5 6 10 11 13

计算中位数X

y =分位数(x, 0.50)
Y = 8.

计算四分位数X

Y = Smianile(x,[0.25,0.5,0.75])
y =1×35 8 11.

使用y = smianile(x,3)是计算四分位数的另一种方法X

这些结果可能与教科书定义不同,因为斯蒂利韦用途线性插值求中位数和四分位数。

求向量的中位数和四分位数,X,具有奇数元素。

输入数据。

X = [2 4 6 8 10 12 14]
X =1×72 4 6 8 10 12 14

找到中位数X

y =分位数(x, 0.50)
Y = 8.

找到四分位数X

Y = Smianile(x,[0.25,0.5,0.75])
y =1×34.5000 8.0000 11.5000

使用y = smianile(x,3)是计算四分位数的另一种方法X

这些结果可能与教科书定义不同,因为斯蒂利韦用途线性插值求中位数和四分位数。

计算给定概率的高柱向量的精确和近似量程。

当您在高数组上执行计算时,MATLAB®使用一个并行池(如果您有parallel Computing Toolbox™,则默认)或本地MATLAB会话。要在使用并行计算工具箱时使用本地MATLAB会话运行示例,请使用Mapreducer.功能。

Mapreducer(0)

创建一个数据存储区airlinesmall数据集。对待'na'值作为缺失数据,以便数据存储用它们取代它们价值观。指定使用arttime.变量。

ds =数据存储('airlinesmall.csv''尾声''na'...“SelectedVariableNames”“ArrTime”);

在数据存储上创建一个高表,并将数据从高表中提取到高向量中。

t =高(DS)%高表
T = MX1高表ARRTIME _______ 735 1124 2218 1431 746 1547 1052 1134:
x = t {:,:}%高的向量
X = MX1高双柱向量735 1124 2218 1431 746 1547 1052 1134:

计算x的精确分位数P.= 0.5。因为X是高列向量吗P.是一个标量,斯蒂利韦默认情况下返回精确的分位数值。

p = 0.5;%累积概率Yexact = Smianile(X,P)
yExact = tall double ?

计算X的近似分量P.= 0.5。指定'方法','近似'使用基于的近似算法T-DIGEST.计算量数。

yApprox =分位数(x p'方法''近似'
yApprox = MxNx……高双数组???......???......??? ... : : : : : :

评估高阵列并通过使用将结果带入内存中收集

[Yexact,Yappox] =聚集(YExact,Yappox)
使用本地MATLAB会话评估高表达式:-通过1的4:在1.2秒完成-通过2的4:在0.66秒完成-通过3的4:在0.76秒完成-通过4的4:在0.87秒完成评估4.6秒完成
YExact = 1522.
yApprox = 1.5220 e + 03

近似分位数和精确分位数的值与所示的四位相同。

计算沿不同尺寸的指定累积概率的高矩阵的精确和近似定量。

当您在高数组上执行计算时,MATLAB®使用一个并行池(如果您有parallel Computing Toolbox™,则默认)或本地MATLAB会话。要在使用并行计算工具箱时使用本地MATLAB会话运行示例,请使用Mapreducer.功能。

Mapreducer(0)

创建一个高矩阵X包含来自的变量子集airlinesmall数据集。看给定概率的高载体量数有关从高数组中提取数据的步骤的详细信息。

varnames = {'arrdelay'“ArrTime”'deptime''ActualLapSedtime'};数据集中的%变量子集ds =数据存储('airlinesmall.csv''尾声''na'...“SelectedVariableNames”, varnames);% 数据存储t =高(DS);%高表X = t {:, varnames}%高矩阵
X = Mx4高双矩阵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的尺寸操作时,斯蒂利韦函数只计算精确的分位数,因此它可以使用基于排序的算法高效地执行计算(参见算法)代替基于的近似算法T-DIGEST.

计算的精确分位数X沿着累积概率为0.25,0.5和0.75的第二维度。

P = [0.25 0.50 0.75];累积概率的%向量Yexact = Smianile(X,P,2)
Yexact = mxnx ...高双数组???......???......???... :::::::::

当该功能沿第一维度和P.是累积概率的矢量,必须使用基于T-Digest的近似算法来计算量数。使用基于分类的算法沿着高阵列的第一维找到量程是计算密集的。

计算近似量程X沿着累积概率0.25,0.5和0.75的第一维度。因为默认维度是1,所以不需要指定值暗淡

Yappox = Smianile(X,P,'方法''近似'
Yappox = mxnx ...高级双数组???......???......???... :::::::::

评估高阵列并通过使用将结果带入内存中收集

[Yexact, Yapprox] =收集(Yexact Yapprox);
使用本地MATLAB会话评估高表达: - 通过1的1:在2.8秒评估中完成的3.7秒

显示的确切分位数的前五行X(沿第二个维度)累积概率为0.25、0.5和0.75。

YExact(1:5,:)
ans =.5×3103.×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.5347.5,688.5分别为0.25,0.5和0.75分别的第一排X

显示近似量级X(沿第一个维度)累积概率为0.25、0.5和0.75。

Yappox.
Yappox =.3×4103.×-0.0070 1.1149 0.9322 0.0700 0 1.5220 1.3350 0.1020 0.010 0.0110 1.9180 1.7400 0.1510

矩阵的每列Yappox.对应于矩阵的每列的三个分量X.例如,第一列Yappox.具有元素(-7,0,11)包含第一列的分量X

计算精确的和近似的分位数沿着不同的维度的高矩阵N均匀间隔累积概率。

当您在高数组上执行计算时,MATLAB®使用一个并行池(如果您有parallel Computing Toolbox™,则默认)或本地MATLAB会话。要在使用并行计算工具箱时使用本地MATLAB会话运行示例,请使用Mapreducer.功能。

Mapreducer(0)

创建一个高矩阵X包含来自的变量子集airlinesmall数据集。看给定概率的高载体量数有关从高数组中提取数据的步骤的详细信息。

varnames = {'arrdelay'“ArrTime”'deptime''ActualLapSedtime'};数据集中的%变量子集ds =数据存储('airlinesmall.csv''尾声''na'...“SelectedVariableNames”, varnames);% 数据存储t =高(DS);%高表X = t {:, varnames}
X = Mx4高双矩阵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,所以不需要指定值暗淡.指定'方法','近似'使用近似算法。

n = 3;%分位数个数Yapprox =分位数(X, N,'方法''近似'
Yappox = mxnx ...高级双数组???......???......???... :::::::::

在任何其他维度上寻找均匀间隔的分位数(暗淡不是1),斯蒂利韦仅计算精确量级,以便它可以通过使用基于分类的算法有效地执行计算。

沿着第二尺寸计算三个均匀间隔的量级X.因为暗淡不是1,斯蒂利韦默认情况下返回精确定位。

Yexact = Smianile(x,n,2)
Yexact = mxnx ...高双数组???......???......???... :::::::::

评估高阵列并通过使用将结果带入内存中收集

[Yappox,Yexact] =聚集(Yappox,Yexact);
使用本地MATLAB会话评估高表达: - 通过1的1:在2.9秒评估中完成3.6秒

显示近似量级X(沿第一个维度)为三个均匀间隔的累积概率。

Yappox.
Yappox =.3×4103.× -0.0070 1.1148 0.9321 0.0700 0 1.5220 1.3350 0.1020 0.0110 1.9180 1.7400 0.1510

矩阵的每列Yappox.对应于矩阵的每列均匀间隔的量级X.例如,第一列Yappox.具有元素(-7,0,11)包含第一列的分量X

显示的确切分位数的前五行X(沿第二个维度)的三个均匀间隔的累积概率。

YExact(1:5,:)
ans =.5×3103.×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.5347.5,688.5分别为0.25,0.5和0.75分别的第一排X

输入参数

全部折叠

输入数据,指定为向量或数组。

数据类型:|单身的

要计算分位数的累积概率,指定为从0到1的标量或标量的向量。

例子:0.3

例子:(0.25, 0.5, 0.75)

例子:(0:0.25:1)

数据类型:|单身的

要计算的分位数的数量,指定为正整数。斯蒂利韦回报N将数据集分成均匀分布的分位数N+1段。

数据类型:|单身的

矩阵的量级尺寸X请求,指定为正整数。例如,对于矩阵X, 什么时候暗淡= 1,斯蒂利韦返回列的分位数X;什么时候暗淡= 2,斯蒂利韦返回行的大分X.对于多维数组X,的长度暗淡尺寸y与长度相同P.

数据类型:单身的|

维数向量,指定为正整数向量。的每个元素vecdim.表示输入数组的一个维度X.在最小指定的操作维度(即维度)中分钟(vecdim)),输出y具有等于​​所请求的量级数量的长度(或者N长度(p)).在每个剩余的操作维度中,y具有长度1.其他尺寸长度是相同的Xy

例如,考虑一个2×3×3阵列XP = [0.2 0.4 0.6 0.8].在这种情况下,Smianile(x,p,[1 2])返回一个数组,其中数组的每个页面包含对应页面上元素的0.2、0.4、0.6和0.8分位数X.因为1和2是操作尺寸,有min([1 2])= 1长度(p) = 4,输出是一个4 × 1 × 3的数组。

数据类型:单身的|

计算分位数的方法,指定为'精确的''近似'.默认情况下,斯蒂利韦通过实现一个来返回精确的量程算法使用排序。您可以指定“方法”,“近似”斯蒂利韦通过实现使用的算法来返回近似量程T-DIGEST.

数据类型:char|字符串

输出参数

全部折叠

数据向量或数组的分位数,作为一个或多个累积概率值的标量或数组返回。

  • 如果X是一个矢量,然后y是与请求的分位数长度相同的标量或向量(N长度(p)).义)包含了p(我)分位数。

  • 如果X是一系列维度D., 然后y是一个阵列,具有最小操作尺寸的长度等于所请求的定量数(N长度(p)).

更多关于

全部折叠

多维数组

一种多维数组是一个二维以上的数组。例如,如果X是1乘3乘4的数组吗X是一个三维阵列。

不陈德尔顿维度

一种nonsingleton维度数组是一个尺寸,其大小不等于1.a第一个nonsingleton维度数组的第一个维度满足非单例条件。例如,如果X是一个1-1×2×4阵列,那么第三个维度是第一个不连续的尺寸X

线性插值

线性插值使用线性多项式来求y一世= f(X一世),底层函数的值y= f(X)在矢量或阵列中的点X.鉴于数据点(X1y1) 和 (X2y2), 在哪里y1= f(X1),y2= f(X2)线性插值发现y= f(X)对于给定的X之间X1X2如下:

y = F X = y 1 + X X 1 X 2 X 1 y 2 y 1

同样,如果1.5 /N分位数是y1.5 /N和2.5 /N分位数是y2.5 /N,则线性插值得到2.3/N斯蒂利韦y2.3 /N作为

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-DIGEST.

T-DIGEST.[2]是一种概率数据结构,它是数据集的经验累积分布函数(CDF)的稀疏表示。T-digest对于从在线或分布式数据中计算基于秩的统计数据(比如百分位数和分位数)的近似很有用,这种方法允许可控的准确性,特别是在数据分布的尾部。

对于以不同的分区分布的数据,T-Digest分别计算每个数据分区的定量估计(和百分位数估计),然后将估计组合在保持恒定存储器绑定和常数相对精度的同时( 问: 1 问: 为了问:达米尔)。由于这些原因,T-Digest是用高阵列一起使用的实用性。

要估计分布在不同分区中的数组的定量,首先在数据的每个分区中构建T摘要。T-Digest将分区中的数据集群群化,并通过质心值和累计的权重汇总每个群集,该累积权重表示为群集有贡献的样本数。T-Digest使用大型集群(广泛间隔的质心)来代表附近的CDF的区域问:= 0.5并使用小簇(紧密间隔的质心)来代表附近的CDF的区域问:= 0.问:= 1

T-Digest通过使用映射量级的缩放函数来控制群集大小问:到一个索引K.带有压缩参数 δ. .也就是说,

K. 问: δ. = δ. 1 2 问: 1 π + 1 2

映射在哪里K.单调与最小值K.(0,δ.) = 0和最大价值K.(1,δ.) =δ..下图显示了缩放功能δ.= 10.

缩放功能转换分量值问:到比例因子K.为了给出可变尺寸的步骤问:.因此,集群大小是不相等的(中心分位数周围较大,附近较小问:= 0.问:= 1).较小的星系团可以提高数据边缘附近的精度。

要使用具有权重和位置的新观察更新T-Digest,请找到最接近新观察的群集。然后,如果群集的更新权重不超过大小限制,则添加权重和更新群集的质心。

您可以通过采用T-Digest的联合并合并其质心来将独立的T-Digests与数据的每个分区组合起来。为了结合T-摘要,首先将来自所有独立T档的簇分类在簇重量的降低下。然后,在满足尺寸限制时合并相邻群集,以形成新的T-Digest。

形成一个代表完整数据集的T-Digest,您可以估计T-Digest中每个群集的终点(或边界),然后在每个群集中的端点之间使用插值以查找准确的分位数估计.

算法

N-Element矢量X斯蒂利韦通过使用基于分拣的算法计算定量,如下所示:

  1. 中的有序元素X被占用(0.5 /N),(1.5 /N),…((N- 0.5] /N数量。例如:

    • 对于包含{6,3,2,10,1}等5个元素的数据向量,排序后的元素{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)定量。

  2. 斯蒂利韦用途线性插值计算概率之间的量级(0.5 /N) 和 ([N- 0.5] /N).

  3. 对于对应于该范围之外的概率的定量,斯蒂利韦中元素的最小值或最大值X

斯蒂利韦对待S作为缺失的值并删除它们。

参考

[1] Langford, E.《基本统计学中的四分位数》,统计教育.2006年第14卷第3期。

邓宁(T. Dunning)和欧·厄特尔(O. Ertl)。”使用t - digest计算非常精确的分位数。“2017年8月。

扩展能力

之前介绍过的R2006a