主要内容

斯蒂利韦

数据集的定量

描述

例子

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

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

  • 如果X是一个矩阵y是行矢量或矩阵,其中行数y等于的长度P.

  • 多维阵列斯蒂利韦沿着第一个操作不陈德尔顿维度X

例子

y= smianile(XN返回分位数N均匀间隔累积概率(1 /(N+ 1),2 /(N+ 1),…N/(N+ 1))为整数N> 1。

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

  • 如果X是一个矩阵y是一个矩阵,其中行数y等于N

  • 多维阵列斯蒂利韦沿着第一个操作不陈德尔顿维度X

例子

y= smianile(___,'全部')返回所有元素的量级X对于前两种语法中的任何一种。

例子

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

例子

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

例子

y= smianile(___“方法”,方法根据值返回精确或近似定量方法,使用先前语法中的任何输入参数组合。

例子

全部收缩

计算用于指定概率的数据集的定量。

生成大小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 = smianile(x,0.30)
y = -0.0574

计算累积概率0.025,0.25,0.5,0.75和0.975的定量。

Y = Smianile(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 =分位数(X, 0.3, 1)
y =1×6.-0.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 = smianile(x,0.3)

为的每一行计算0.3分位数X昏暗的= 2)。

y =分位数(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 11 4 2 10 9 7 8 3 10 10 10 2 11 4 11 1 7 2 5 9 7 1 5 11 10 10 10 10 2 9 4

计算每列均匀间隔的分量X昏暗的= 1)。

y = smianile(x,3,1)
y =3×7.2.0000 3.0000 5.0000 7.0000 4.0000 1.0000 4.0000 8.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 8.0000 1.0000 7.0000

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

为每行计算三个均匀间隔的定量X昏暗的= 2)。

y = smianile(x,3,2)
y =6×37.0000 8.0000 4.0000 4.0000 9.500.1.0000 8.0000 1.0000 2.0000 8.5000 2.7500 2.0000 7.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 = REPAPE(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 2 22 25 23 24 24 24 24 22
p = [0.25 0.75];

计算所有元素的0.25和0.75分量X

yall = smianile(x,p,'全部'
yall =2×18 23.

yall(1)是0.25分量的X, 和yall(2)是0.75分量的X

为每一页计算0.25和0.75分位数X通过将尺寸1和2指定为操作尺寸。

ypage = smianile(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 = smianile(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×6.2 5 6 10 11 13

计算中位数X

y = smianile(x,0.50)
Y = 8.

计算四分位数X

Y =分位数(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×7.2 4 6 8 10 12 14

找到中位数X

y = smianile(x,0.50)
Y = 8.

找到四分位数X

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

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

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

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

当您对高阵列执行计算时,Matlab®使用并行池(如果您有并行计算工具箱™)或本地MATLAB会话,则使用并行池(默认值)。要使用Parallated Computing Toolbox使用本地MATLAB会话运行示例,请使用“使用”控件“工具箱”来更改“全局执行环境”Mapreducer.功能。

Mapreducer(0)

创建一个数据存储Airlinesmall.数据集。对待'na'值作为缺少数据的值数据存储用它们取代它们价值观。指定使用arttime.多变的。

ds =数据存储('airlinesmall.csv'“TreatAsMissing”'na'......'selectedvariamblenames''Arr Time');

在数据存储的顶部创建一个高表,并从高表台中提取数据到高大的向量中。

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 =高高的双倍?

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

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

计算高数组,并通过使用收集

[Yexact,Yappox] =聚集(YExact,Yappox)
使用本地MATLAB会议评估高表达: - 通过4的第1条:完成1.1秒 - 通过4的第2条:在0.53秒内完成 -  PASS 3的第3条:在0.67秒内完成 -  PASS 4,共4分,0.66秒完成3.9秒
YExact = 1522.
yApprox = 1.5220 e + 03

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

在不同的维度上为指定的累积概率计算一个高矩阵的精确和近似分位数。

当您对高阵列执行计算时,Matlab®使用并行池(如果您有并行计算工具箱™)或本地MATLAB会话,则使用并行池(默认值)。要使用Parallated Computing Toolbox使用本地MATLAB会话运行示例,请使用“使用”控件“工具箱”来更改“全局执行环境”Mapreducer.功能。

Mapreducer(0)

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

varnames = {“ArrDelay”'Arr Time''deptime''ActualLapSedtime'};数据集中的%变量子集ds =数据存储('airlinesmall.csv'“TreatAsMissing”'na'......'selectedvariamblenames',varnames);%数据存储t =高(ds);%高表x = t {:,varnames}%高矩阵
X = MX4高,双矩阵8 735 642 53 8 1124 1021 63 2218 2055 83 13 131 1332 59 4 746 629 77 5447 1329 77 13146 613144141414414141414141414141C 84141414141C 84 11 1134 859 155 :::::::::::::::::::::::::::::

沿着不是1的尺寸操作时,斯蒂利韦函数仅计算精确量级,以便它可以使用基于分类的算法有效地执行计算(参见算法)代替基于的近似算法T-DIGEST.

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

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

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

计算的近似分位数X沿着累积概率0.25,0.5和0.75的第一维度。因为默认维度为1,因此您无需指定值昏暗的

Yappox = Smianile(X,P,'方法''近似'
Yapprox = MxNx……高双数组???......???......??? ... : : : : : :

计算高数组,并通过使用收集

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

显示精确量级的前五行X(沿第二维)为累积概率0.25,0.5和0.75。

YExact(1:5,:)
ans =.5×310.3.×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×410.3.×-0.0070 1.1149 0.9321 0.0700 0 1.5220 1.3350 0.1020 0.010 0.010 0.010 0.010 0.0110 1.9180 1.7400 0.1510

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

沿着高矩阵的不同尺寸计算精确和近似定量N均匀间隔累积概率。

当您对高阵列执行计算时,Matlab®使用并行池(如果您有并行计算工具箱™)或本地MATLAB会话,则使用并行池(默认值)。要使用Parallated Computing Toolbox使用本地MATLAB会话运行示例,请使用“使用”控件“工具箱”来更改“全局执行环境”Mapreducer.功能。

Mapreducer(0)

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

varnames = {“ArrDelay”'Arr Time''deptime''ActualLapSedtime'};数据集中的%变量子集ds =数据存储('airlinesmall.csv'“TreatAsMissing”'na'......'selectedvariamblenames',varnames);%数据存储t =高(ds);%高表x = t {:,varnames}
X = MX4高,双矩阵8 735 642 53 8 1124 1021 63 2218 2055 83 13 131 1332 59 4 746 629 77 5447 1329 77 13146 613144141414414141414141414141C 84141414141C 84 11 1134 859 155 :::::::::::::::::::::::::::::

为了沿着第一个维度找到均匀间隔的分位数,您必须使用基于T-DIGEST..使用基于排序的算法(参见算法)沿着高大阵列的第一维找到数量是计算密集的。

沿着第一维计算三个均匀间隔的量级X.因为默认维度为1,因此您无需指定值昏暗的.指定'方法','近似'使用近似算法。

n = 3;百分比数量Yappox = Smianile(x,n,'方法''近似'
Yapprox = MxNx……高双数组???......???......??? ... : : : : : :

沿任何其他维度找到均匀的间隔量程(昏暗的不是1),斯蒂利韦只计算精确的分位数,使用基于排序的算法可以有效地执行计算。

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

Yexact =分位数(X, N, 2)
Yexact = mxnx ...高双数组???......???......???... :::::::::

计算高数组,并通过使用收集

[Yappox,Yexact] =聚集(Yappox,Yexact);
使用本地Matlab会话评估高表达: - 通过1的1:3.1秒评估完成3.8秒

的近似分位数X(沿第一维)用于三种均匀间隔的累积概率。

Yappox.
Yappox =.3×410.3.× -0.0070 1.1148 0.9322 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×310.3.×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,的长度昏暗的th尺寸y和的长度一样吗P.

数据类型:单身的|双倍的

尺寸矢量,指定为正整数矢量。每个元素vecdim表示输入数组的尺寸X.在最小指定的操作尺寸(即,维度MIN(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.

数据类型:字符|细绳

输出参数

全部收缩

数据矢量或数组的定量,作为一个或多个累积概率值的标量或阵列返回。

  • 如果X是一个矢量,然后y是标量或矢量长度与所请求的定量数相同的矢量(N要么长度(p))。义)包含p(我)分米。

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

更多关于

全部收缩

多维数组

一种多维数组是一个以上两个维度的阵列。例如,如果X是一个1×3×4阵列,然后是一个X是一个三维数组。

Nonsingleton维度

一种不陈德尔顿维度数组是一个尺寸,其大小不等于1.a第一个不明飞特的维度阵列是满足非星期线条件的第一个维度。例如,如果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摘要,找到最接近新观测值的星团。然后,在更新后的权重不超过大小限制的前提下,添加权重并基于加权平均更新聚类的质心。

您可以通过采用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},分类元件{1,2,3,6,10}分别对应于0.1,0.3,0.5,0.7,0.9分量。

    • 对于{6,3,2,10,8,1}等6个元素的数据向量,排序后的元素{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.“基本统计中的四分位数”,统计教育.卷。14,2006年3号。

[2]垂头宁,T.和O. ERTL。“使用T-Digest计算非常精确的定量。2017年8月”。

扩展能力

也可以看看

||

在R2006A之前介绍