主要内容

分位数

分位数的数据集

描述

例子

=分位数(一个,p)返回元素的分位数输入数据一个累积概率或概率p在区间[0,1]。

  • 如果一个是一个矢量,然后呢是一个标量或矢量长度一样吗p问(我)包含了p(我)分位数。

  • 如果一个是一个矩阵,然后呢是一个行向量或矩阵的行数的等于长度(p)。的th排包含了p(我)分位数的每一列的一个

  • 如果一个是一个多维数组,那么包含分位数计算沿第一个数组大小尺寸大于1。

例子

=分位数(一个,n)返回分位数n等间距的累积概率(1 / (n+ 1),2 / (n+ 1),…n/ (n+ 1)整数n> 1。

  • 如果一个是一个矢量,然后呢是一个标量或矢量长度n

  • 如果一个是一个矩阵,然后呢是一个矩阵n行。

  • 如果一个是一个多维数组,那么包含分位数计算沿第一个数组大小尺寸大于1。

例子

=分位数(___“所有的”)返回的所有元素的分位数一个对于前两个语法。

例子

=分位数(___,昏暗的)沿着维操作昏暗的对于前两个语法。例如,如果一个是一个矩阵,然后呢分位数(A, p, 2)在每一行的元素进行操作。

例子

=分位数(___,vecdim)沿着维向量中指定的操作vecdim对于前两个语法。例如,如果一个是一个矩阵,然后呢分位数(n [1 - 2])操作的所有元素一个因为一个矩阵的每个元素都包含在定义的数组切片尺寸1和2。

例子

=分位数(___“方法”,方法)返回精确或近似分位数的价值方法,使用任何输入参数组合在前面的语法。

例子

全部折叠

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

生成一个数据集的大小7。

rng默认的%的再现性A = randn (7)
一个=1×70.5377 1.8339 -2.2588 0.8622 0.3188 -1.3077 -0.4336

计算的0.3分位数的元素一个

Q =分位数(0.3)
Q = -0.7832

计算元素的分位数的一个累积概率的0.025,0.25,0.5,0.75和0.975。

Q =分位数(A, [0.025 0.25 0.5 0.75 0.975])
Q =1×5-2.2588 -1.0892 0.3188 0.7810 1.8339

计算一个数据集的分位点对于一个给定的概率。

生成一个数据集的大小7。

rng默认的%的再现性A = randn (7)
一个=1×70.5377 1.8339 -2.2588 0.8622 0.3188 -1.3077 -0.4336

计算四个等间距的分位数的元素一个

Q =分位数(4)
Q =1×4-1.4028 -0.2079 0.4720 0.9593

使用Q =分位数(A, (0.2, 0.4, 0.6, 0.8))是另一个方法返回四个等间距的分位数。

计算分位数的数据矩阵的行和列指定的概率。

生成一个4-by-6数据矩阵。

rng默认的%的再现性一个= randn (4、6)
一个=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.3426 3.0349 -0.2050 1.4172 1.6302

计算每一列的0.3分位数一个

Q =分位数(0.3,1)
Q =1×6-0.3013 -0.6958 1.5336 -0.1056 0.9491 0.1078

分位数返回一个行向量在计算每一列的分位数一个-0.3013是第一列的0.3分位数的一个与0.5377、1.8339、-2.2588和0.8622。因为的默认值昏暗的是1,Q =分位数(0.3)返回相同的结果。

计算的0.3分位数为每一行一个

Q =分位数(0.3,2)
Q =4×10.3844 -0.8642 -1.0750 0.4985

分位数返回一个列向量当计算一个分位数为每一行一个0.3844是第一行的0.3分位数的一个与元素0.5377,0.3188,3.5784,0.7254,-0.1241和0.6715。

计算均匀间隔的分位数以及一个数据矩阵的行和列。

生成一个6-by-7数据矩阵。

rng默认的%的再现性一个=兰迪(10 6 7)
一个=6×79 3 10 8 7 8 7 10 6 5 10 8 1 4 2 1 9 7 8 3 10 10 10 2 4 1 1 7 2 5 9 7 1 5 1 10 10 10 2 9 4

计算每一列的分位数一个三个等间距的累积概率。

Q =分位数(3 - 1)
Q =3×72.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

每一列的矩阵包含相应的列的分位数一个2,8,10是第一列的分位数一个元素9、10、2、7和1。Q =分位数(3)返回相同的结果,因为默认值昏暗的是1。

计算每一行的分位数一个三个等间距的累积概率。

Q =分位数(3 2)
Q =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

矩阵的每一行包含三个等间距的分位数中相应的行一个7,8,8.75是第一行的分位数的一个元素9、3、10、8,7,8,7。

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

创建一个3-by-5-by-2数组。指定一个向量的概率。

一个=重塑(1:30,[3 5 2])
=(::1)= 1 4 7 10 13 2 5 8 11 14 3 6 9 12 15(:,: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分位数的计算的所有元素一个

Qall =分位数(A, p,“所有”)
Qall =2×18日23

Qall (1)0.25分位数的吗一个,Qall (2)0.75分位数的吗一个

计算每一页的0.25和0.75分位数一个通过指定尺寸1和2的操作方面。

Qpage =分位数(p [1 - 2])
Qpage = Qpage (:: 1) = 4.2500 - 11.7500 Qpage (:,: 2) = 19.2500 - 26.7500

Qpage (1, 1, 1)是第一页的0.25分位数的一个,Qpage (2, 1, 1)是第一页的0.75分位数的一个

计算元素的0.25和0.75分位数(我::)片通过指定维度2和3的操作维度。

Qrow =分位数(p [2 3])
Qrow =3×27 22 8 23 9 24

Qrow (3,1)元素的0.25分位数在吗(3::),Qrow (2)元素的0.75分位数在吗(3::)

找到一个向量的值和质量与偶数个元素。

创建一个数据向量。

= (2 5 6 10 11 13)
一个=1×62 5 6 10 11 13

计算的元素的值一个

Q =分位数(0.5)
Q = 8

计算元素的四分位数的一个

Q =分位数(A, (0.25, 0.5, 0.75))
Q =1×35 8 11

使用Q =分位数(3)是另一种方式来计算元素的四分位数的一个

这些结果可能不同于教科书上的定义,因为分位数使用线性插值找到中间值和四分位。

找到中间值和四分位向量数为奇数的元素。

创建一个数据向量。

一个= (2 4 6 8 10 12 14)
一个=1×72 4 6 8 10 12 14

计算的元素的值一个

Q =分位数(0.50)
Q = 8

计算元素的四分位数的一个

Q =分位数(A, (0.25, 0.5, 0.75))
Q =1×34.5000 8.0000 11.5000

使用Q =分位数(3)另一种计算四分位数的吗一个

这些结果可能不同于教科书上的定义,因为分位数使用线性插值找到中间值和四分位。

计算精确和近似的分位数高列向量为给定的概率。

当你执行计算高数组,MATLAB®使用一个平行池(默认如果你有并行计算工具箱™)或当地的MATLAB会话。要运行示例使用当地的MATLAB会话并行计算工具箱后,改变全球执行环境使用mapreduce函数。

mapreduce (0)

创建一个数据存储airlinesmall数据集。治疗“NA”价值观缺失的数据,数据存储取代他们值。指定的工作ArrTime变量。

ds =数据存储(“airlinesmall.csv”,“TreatAsMissing”,“NA”,“SelectedVariableNames”,“ArrTime”);

创建一个高表tt在数据存储、高表的数据提取到一个高的向量一个

tt =高(ds)
tt = mx₁高表ArrTime _________ 735 1124 2218 1431 746 1547 1052 1134::
一个= tt {:,:}
mx₁高双列向量A = 735 1124 2218 1431 746 1547 1052 1134::

计算的精确分位数一个对累积概率p = 0.5。因为一个是一个高大的列向量和p是一个标量,分位数默认返回准确的分位数的值。

p = 0.5;Qexact =分位数(A, p)
双Qexact =高?

计算的近似分位数一个p = 0.5。指定方法作为“近似”使用一个基于近似算法T-Digest计算分位数。

Qapprox =分位数(A, p,“方法”,“近似”)
Qapprox = MxNx……高的双重数组?吗?吗?…吗?吗?吗?…吗? ? ? ... : : : : : :

评价高的数组并把结果到内存中使用收集

[Qexact, Qapprox] =收集(Qexact Qapprox)
评估高表达式使用当地的MATLAB会话:通过1 4:在0.71秒完成,通过2 4:在0.27秒完成,通过3 4:在0.37秒完成,通过4 4:在0.3秒完成评估在2.1秒完成
Qexact = 1522
Qapprox = 1.5220 e + 03

准确的分位数的值和四位数的近似分位数是相同的。

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

当你执行计算高数组,MATLAB®使用一个平行池(默认如果你有并行计算工具箱™)或当地的MATLAB会话。要运行示例使用当地的MATLAB会话并行计算工具箱后,改变全球执行环境使用mapreduce函数。

mapreduce (0)

创建一个高矩阵一个包含变量中存储的一个子集varnamesairlinesmall数据集。分位数高向量的概率对细节的步骤提取数据从一个高大的数组。

varnames = [“ArrDelay”,“ArrTime”,“DepTime”,“ActualElapsedTime”];ds =数据存储(“airlinesmall.csv”,“TreatAsMissing”,“NA”,“SelectedVariableNames”,varnames);tt =高(ds);一个= tt {:, varnames}
= Mx4高双矩阵8 735 642 53 8 21 1124 1021 63 2218 2055 83 1431 1332 59 746 629 77 59 1547 1446 61 3 1052 928 84 11 1134 859 155::::::::

当操作在一个维度,不是1,分位数函数计算准确的分位数只有这样它可以执行计算有效地使用sorting-based算法(见算法)而不是基于一个近似算法T-Digest

计算的精确分位数一个沿着第二维向量p累积概率0.25,0.5和0.75。

p = 0.25 (0.5 - 0.75);Qexact =分位数(A, p, 2)
Qexact = MxNx……高的双重数组?吗?吗?…吗?吗?吗?…吗? ? ? ... : : : : : :

当沿着第一维度和功能操作p是一个向量的累积概率,必须使用近似算法基于t-digest计算分位数。使用sorting-based算法找到分位数沿着一个高大数组的第一个维度是计算密集型的。

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

Qapprox =分位数(A, p,“方法”,“近似”)
Qapprox = MxNx……高的双重数组?吗?吗?…吗?吗?吗?…吗? ? ? ... : : : : : :

评价高的数组并把结果到内存中使用收集

[Qexact, Qapprox] =收集(Qexact Qapprox);
评估高表达式使用当地的MATLAB会话:通过1 1:在1.5秒完成评估在1.9秒完成

显示的具体分位数的前五行一个(在第二个维度)累积概率0.25,0.5和0.75。

:Qexact (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

矩阵的每一行Qexact包含了三分位数中相应的行一个。例如,30.5,347.5,688.5是0.25,0.5,和0.75分位数,分别的第一行吗一个

显示的近似分位数一个(在第一个维度)累积概率0.25,0.5和0.75。

Qapprox
Qapprox =3×41030×-0.0070 1.1149 0.9322 0.0700 1.5220 1.3350 0.1020 0.0110 1.9180 1.7400 0.1510

矩阵的每一列Qapprox包含三分位数中相应的列一个。例如,第一列Qapprox与元素7 0,11包含第一列的分位数一个

计算精确和近似分位数高矩阵的不同维度对于给定数量的均匀间隔的累积概率。

当你执行计算高数组,MATLAB®使用一个平行池(默认如果你有并行计算工具箱™)或当地的MATLAB会话。要运行示例使用当地的MATLAB会话并行计算工具箱后,改变全球执行环境使用mapreduce函数。

mapreduce (0)

创建一个高矩阵一个包含变量中存储的一个子集varnamesairlinesmall数据集。分位数高向量的概率对细节的步骤提取数据从一个高大的数组。

varnames = [“ArrDelay”,“ArrTime”,“DepTime”,“ActualElapsedTime”];ds =数据存储(“airlinesmall.csv”,“TreatAsMissing”,“NA”,“SelectedVariableNames”,varnames);tt =高(ds);一个= tt {:, varnames}
= Mx4高双矩阵8 735 642 53 8 21 1124 1021 63 2218 2055 83 1431 1332 59 746 629 77 59 1547 1446 61 3 1052 928 84 11 1134 859 155::::::::

计算分位数等间距的累积概率沿着第一个维度,您必须使用基于近似算法T-Digest。(请参阅使用sorting-based算法算法)找到分位数高数组的第一个维度是计算密集型的。

计算三个等间距的累积概率的分位数的第一个维度一个。因为默认的尺寸是1,您不需要指定一个值昏暗的。指定方法作为“近似”使用近似算法。

Qapprox =分位数(3“方法”,“近似”)
Qapprox = MxNx……高的双重数组?吗?吗?…吗?吗?吗?…吗? ? ? ... : : : : : :

计算分位数等间距的累积概率以及任何其他维度(昏暗的不是1),分位数计算准确的分位数,以便有效地执行计算通过使用sorting-based算法。

计算三个等间距的累积概率的分位数的第二个维度一个。因为昏暗的不是1,分位数默认返回准确的分位数。

Qexact =分位数(3 2)
Qexact = MxNx……高的双重数组?吗?吗?…吗?吗?吗?…吗? ? ? ... : : : : : :

评价高的数组并把结果到内存中使用收集

[Qapprox, Qexact] =收集(Qapprox Qexact);
评估高表达式使用当地的MATLAB会话:通过1 1:在1秒完成评估在1.2秒完成

显示的近似分位数一个(在第一个维度)三个等间距的累积概率。

Qapprox
Qapprox =3×41030×-0.0070 1.1149 0.9321 0.0700 1.5220 1.3350 0.1020 0.0110 1.9180 1.7400 0.1510

矩阵的每一列Qapprox包含相应的列的分位数一个。例如,第一列Qapprox与元素7 0,11包含第一列的分位数一个

显示的具体分位数的前五行一个(在第二个维度)三个等间距的累积概率。

:Qexact (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

矩阵的每一行Qexact包含三个等间距的分位数中相应的行一个。例如,30.5,347.5,688.5是0.25,0.5,和0.75分位数,分别的第一行吗一个

输入参数

全部折叠

输入数组,指定为一个向量,矩阵,或多维数组。

数据类型:|

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

例子:0.3

例子:(0.25,0.5,0.75)

例子:(0:0.25:1)

数据类型:|

数的概率来计算分位数,指定为一个正整数标量。分位数返回n分位数,将数据集划分为均匀分布n+ 1段。

数据类型:|

维操作,指定为一个正整数标量。如果你不指定维度,那么默认的是第一个数组大小尺寸大于1。

考虑一个输入矩阵一个和一个向量的累积概率p:

  • Q =分位数(p - 1)计算列的分位数一个累计概率p。因为1是指定的操作层面,长度(p)行。

  • Q =分位数(A, p, 2)计算分位数的行一个累计概率p。因为2是指定的操作层面,长度(p)列。

考虑一个输入矩阵一个和一个向量的均匀间隔的概率n:

  • Q =分位数(n, 1)计算列的分位数一个n等间距的累积概率。因为1是指定的操作层面,n行。

  • Q =分位数(n, 2)计算分位数的行一个n等间距的累积概率。因为2是指定的操作层面,n列。

昏暗的显示的尺寸谁的长度等于长度(p)n

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

向量的维度来操作,指定为一个向量的正整数。每个元素代表一个维度的输入数据。

输出的大小在指定的最小操作维度=长度(p)n。的大小中指定的其他操作维度vecdim是1。的大小在所有维度中指定vecdim仍然是一样的输入数据。

考虑一个2-by-3-by-3输入数组一个和累积概率p分位数(p [1 - 2])返回一个长度(p)-by-1-by-3数组操作维度和因为1和2分钟([1 - 2])= 1。每个页面返回的数组包含元素的分位数在相应的页面一个

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

计算方法分位数,指定这些值之一:

  • “准确”——计算准确的分位数的算法使用排序。

  • “近似”——计算近似算法,使用分位数T-Digest

更多关于

全部折叠

线性插值

线性插值使用线性多项式y= f (x),底层函数的值Y= f (X)分向量或数组x。考虑到数据点(x1,y1)和(x2,y2),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是用于计算近似rank-based统计局(百分位数和分位数等)从网上或分布式数据的方式允许可控精度,特别是尾巴附近的数据分布。

数据分布在不同的分区,t-digest计算分位数估计和百分比估计分别为每个数据分区,然后结合估计,同时保持constant-memory绑定和常数相对精度的计算( ( 1 ) 分位数)。由于这些原因,t-digest身高实际来处理数组。

估计分位点在不同的分区分布的数组,第一个建立t-digest每个分区的数据。t-digest集群中的数据分区和总结每个集群通过质心值和累积重量代表样本的数量导致了集群。T-digest使用大型集群(宽距质心)来表示区域附近的运作= 0.5并使用小集群(紧密间隔的质心)代表的地区提供附近= 0= 1

T-digest控制集群大小通过使用一个地图的缩放函数分位数一个索引k用一个压缩参数δ。也就是说,

k ( , δ ) = δ ( 1 ( 2 1 ) π + 1 2 ) ,

的映射k和最小值是单调吗k(0,δ)= 0和最大价值k(1,δ)=δ。这图显示了扩展功能δ= 10

尺度函数绘制与q轴和k的轴

分位数的尺度函数转换的比例因子k为了适应步骤。因此,围绕中心集群大小不平等(大分位数和较小的附近= 0= 1)。附近的小集群允许更好的准确性的边缘数据。

更新t-digest新观察到的重量和位置,找到最近的集群的新观察。然后,添加重量和更新集群的重心在加权平均基础上,前提是更新后的集群的重量不超过大小限制。

你可以结合独立t-digests每个分区的数据通过工会t-digests和合并他们的重心。结合t-digests,第一个集群中所有独立t-digests集群权重递减的顺序。合并相邻的集群,当他们满足大小限制,形成一个新的t-digest。

一旦你形成一个t-digest代表完整的数据集,您可以估计端点(或范围)的每个集群t-digest然后使用插值每个集群的端点之间找到准确的分位数的估计。

算法

对于一个n元向量一个,分位数计算分位数用sorting-based算法:

  1. 排序的元素一个作为(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)分位数。

  2. 分位数使用线性插值计算分位数之间的概率(0.5 /n)和((n- 0.5)/n)。

  3. 相对应的分位数的概率范围外,分位数分配元素的最大或最小值一个

分位数对待作为缺失值和删除它们。

引用

[1]朗格弗德,大肠“小学四分位数统计”,统计教育杂志。14卷,3号,2006年。

[2]邓宁,T。,o . Ertl。”使用T-Digests计算非常准确的分位数。2017年8月”。

扩展功能

版本历史

之前介绍过的R2006a

全部展开

另请参阅

||