Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

quantile

Los cuantiles de un conjunto de datos

Descripción

ejemplo

Y = quantile(X,p) Devuelve cuantiles de los elementos en Vector de datos o matriz para la probabilidad acumulada o probabilidades en el intervalo [0,1].Xp

  • Si es un vector, entonces es un escalar o un vector que tiene la misma longitud que.XYp

  • Si es una matriz, entonces es un vector de fila o una matriz donde el número de filas de es igual a la longitud de.XYYp

  • Para, opera a lo largo de la primera de.matrices multidimensionalesquantiledimensión nonsingletonX

ejemplo

Y = quantile(X,N) Devuelve cuantiles para las probabilidades acumulativas espaciadas uniformemente (1/(+ 1), 2/(+ 1),...,/(+ 1)) para el entero > 1.NNNNNN

  • Si es un vector, entonces es un escalar o un vector con longitud.XYN

  • Si es una matriz, entonces es una matriz donde el número de filas de es igual a.XYYN

  • Para, opera a lo largo de la primera de.matrices multidimensionalesquantiledimensión nonsingletonX

ejemplo

Y = quantile(___,'all') Devuelve cuantiles de todos los elementos de cualquiera de las dos primeras sintaxis.X

ejemplo

Y = quantile(___,dim) Devuelve cuantiles a lo largo de la dimensión operativa para cualquiera de las dos primeras sintaxis.dim

ejemplo

Y = quantile(___,vecdim) Devuelve cuantiles sobre las dimensiones especificadas en el vector para cualquiera de las dos primeras sintaxis.vecdim Por ejemplo, si es una matriz, a continuación, devuelve el cuantil 0,5 de todos los elementos de porque cada elemento de una matriz está contenida en el segmento de matriz definido por las dimensiones 1 y 2.Xquantile(X,0.5,[1 2])X

ejemplo

Y = quantile(___,'Method',method) Devuelve cuantiles exactos o aproximados en función del valor de, utilizando cualquiera de las combinaciones de argumentos de entrada en las sintaxis anteriores.method

Ejemplos

contraer todo

Calcule los cuantiles de un conjunto de datos para las probabilidades especificadas.

Genere un conjunto de datos de tamaño 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

Calcule el cuantil 0,3.

y = quantile(x,0.30)
y = -0.0574 

Calcule los cuantiles para las probabilidades acumulativas 0,025, 0,25, 0,5, 0,75, y 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

Calcule los cuantiles de un conjunto de datos para un número determinado de cuantiles.

Genere un conjunto de datos de tamaño 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

Calcule cuatro cuantiles espaciados uniformemente.

y = quantile(x,4)
y = 1×4

   -0.8706    0.3307    0.6999    2.3017

Usar es otra forma de devolver los cuatro cuantiles espaciados uniformemente.y = quantile(x,[0.2,0.4,0.6,0.8])

Calcule los cuantiles a lo largo de las columnas y filas de una matriz de datos para las probabilidades especificadas.

Genere una matriz de datos de 4 por 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

Calcule el cuantil 0,3 para cada columna de (= 1).Xdim

y = quantile(X,0.3,1)
y = 1×6

   -0.3013   -0.6958    1.5336   -0.1056    0.9491    0.1078

Devuelve un vector de fila al calcular un cuantil para cada columna de una matriz.quantiley Por ejemplo, es el cuantil 0,3 de la primera columna de con elementos (0,5377, 1,8339,-2,2588, 0,8622).-0.3013X Dado que el valor predeterminado es 1, puede devolver el mismo resultado con.dimy = quantile(X,0.3)

Calcule el cuantil 0,3 para cada fila de (= 2).Xdim

y = quantile(X,0.3,2)
y = 4×1

    0.3844
   -0.8642
   -1.0750
    0.4985

Devuelve un vector de columna al calcular un cuantil para cada fila de una matriz.quantiley Por ejemplo, el cuantil 0,3 de la primera fila de con elementos (0,5377, 0,3188, 3,5784, 0,7254,-0,1241, 0,6715).0.3844X

Calcule el

<math display="block">
<mrow>
<mi>N</mi>
</mrow>
</math>
cuantiles espaciados uniformemente a lo largo de las columnas y filas de una matriz de datos.

Genere una matriz de datos de 6 por 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

Calcule tres cuantiles espaciados uniformemente para cada columna de (= 1).Xdim

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

Cada columna de matriz corresponde a los tres cuantiles espaciados uniformemente de cada columna de matriz.yX Por ejemplo, la primera columna de con elementos (2, 8, 10) tiene los cuantiles para la primera columna de con elementos (9, 10, 2, 10, 7, 1). Devuelve la misma respuesta porque el valor predeterminado es 1.yXy = quantile(X,3)dim

Calcule tres cuantiles espaciados uniformemente para cada fila de (= 2).Xdim

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

Cada fila de la matriz corresponde a los tres cuantiles espaciados uniformemente de cada fila de la matriz.yX Por ejemplo, la primera fila de con elementos (7, 8, 8,75) tiene los cuantiles para la primera fila de con elementos (9, 3, 10, 8, 7, 8, 7).yX

Calcule los cuantiles de una matriz multidimensional para las probabilidades especificadas mediante los argumentos de entrada y.'all'vecdim

Cree una matriz de 3 por 5 por 2.X Especifique el vector de probabilidades.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];

Calcule los cuantiles 0,25 y 0,75 de todos los elementos en.X

Yall = quantile(X,p,'all')
Yall = 2×1

     8
    23

es el cuantil 0,25 de, y es el cuantil 0,75 de.Yall(1)XYall(2)X

Calcule los cuantiles 0,25 y 0,75 para cada página especificando las cotas 1 y 2 como dimensiones operativas.X

Ypage = quantile(X,p,[1 2])
Ypage =  Ypage(:,:,1) =      4.2500    11.7500   Ypage(:,:,2) =     19.2500    26.7500  

Por ejemplo, es el cuantil 0,25 de la primera página de, y es el cuantil 0,75 de la primera página de.Ypage(1,1,1)XYpage(2,1,1)X

Calcule los cuantiles 0,25 y 0,75 de los elementos de cada sector especificando las cotas 2 y 3 como las cotas operativas.X(i,:,:)

Yrow = quantile(X,p,[2 3])
Yrow = 3×2

     7    22
     8    23
     9    24

Por ejemplo, es el cuantil 0,25 de los elementos en, y es el cuantil 0,75 de los elementos en.Yrow(3,1)X(3,:,:)Yrow(3,2)X(3,:,:)

Encuentra la mediana y los cuarles de un vector, con un número de elementos incluso.x

Introduzca los datos.

x = [2 5 6 10 11 13]
x = 1×6

     2     5     6    10    11    13

Calcule la mediana de.x

y = quantile(x,0.50)
y = 8 

Calcule los cuarles de.x

y = quantile(x,[0.25, 0.5, 0.75])
y = 1×3

     5     8    11

Usar es otra forma de calcular los cuartes de.y = quantile(x,3)x

Estos resultados pueden ser diferentes de las definiciones de libro de texto porque utiliza para encontrar la mediana y los cuarles.quantileInterpolación lineal

Encuentra la mediana y los cuarles de un vector, con un número impar de elementos.x

Introduzca los datos.

x = [2 4 6 8 10 12 14]
x = 1×7

     2     4     6     8    10    12    14

Encuentra la mediana de.x

y = quantile(x,0.50)
y = 8 

Encuentra los cuarles de.x

y = quantile(x,[0.25, 0.5, 0.75])
y = 1×3

    4.5000    8.0000   11.5000

Usar es otra forma de calcular los cuartes de.y = quantile(x,3)x

Estos resultados pueden ser diferentes de las definiciones de libro de texto porque utiliza para encontrar la mediana y los cuarles.quantileInterpolación lineal

Calcule los cuantiles exactos y aproximados de un vector de columna alto para una probabilidad dada.

Cree un datastore para el conjunto de datos.airlinesmall Trate los valores como datos faltantes para que los Reemplace con valores.'NA'datastoreNaN Especifique para trabajar con la variable.ArrTime

ds = datastore('airlinesmall.csv','TreatAsMissing','NA',...     'SelectedVariableNames','ArrTime');

Cree una tabla alta en la parte superior del almacén de datos, y extraiga la información de la tabla alta en un vector alto.

t = tall(ds) % Tall table
Starting parallel pool (parpool) using the 'local' profile ... connected to 6 workers.  t =    M×1 tall table      ArrTime     _______        735        1124        2218        1431         746        1547        1052        1134          :        : 
x = t{:,:}   % Tall vector
x =    M×1 tall double column vector           735         1124         2218         1431          746         1547         1052         1134          :          : 

Calcule el cuantil exacto de x para = 0,5.p Dado que es un vector de columna alto y es un escalar, devuelve el valor de cuantil exacto de forma predeterminada.Xpquantile

p = 0.5; % Cumulative probability yExact = quantile(x,p)
yExact =    M×N×... tall double array      ?    ?    ?    ...     ?    ?    ?    ...     ?    ?    ?    ...     :    :    :     :    :    :  Preview deferred. Learn more. 

Calcule el cuantil aproximado de x para = 0,5.p Especifique si desea utilizar un algoritmo de aproximación basado en para computar los cuantiles.'Method','approximate'T-Digest

yApprox = quantile(x,p,'Method','approximate')
yApprox =    M×N×... tall double array      ?    ?    ?    ...     ?    ?    ?    ...     ?    ?    ?    ...     :    :    :     :    :    :  Preview deferred. Learn more. 

Evalúe los arrays altos y traiga los resultados a la memoria usando.gather

[yExact,yApprox] = gather(yExact,yApprox)
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 8.7 sec - Pass 2 of 4: Completed in 4.7 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 19 sec 
yExact = 1522 
yApprox = 1.5220e+03 

Los valores del cuantil aproximado y el cuantil exacto son los mismos a los cuatro dígitos mostrados.

Calcule los cuantiles exactos y aproximados de una matriz alta para las probabilidades acumulativas especificadas a lo largo de diferentes dimensiones.

Cree una matriz alta que contenga un subconjunto de variables del conjunto de datos.Xairlinesmall Consulte para obtener más información sobre los pasos para extraer datos de una matriz alta.Cuantiles de vector alto para probabilidad dada

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
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 6). 
X = t{:,varnames} % Tall matrix
X =    M×4 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           :          :            :           :           :          :            :           : 

Cuando se opera a lo largo de una cota que no es 1, la función calcula únicamente los cuantiles exactos, de modo que puede realizar el cálculo de forma eficaz utilizando un algoritmo basado en ordenación (véase) en lugar de un algoritmo de aproximación basado en.quantileAlgoritmosT-Digest

Calcule los cuantiles exactos a lo largo de la segunda dimensión para las probabilidades acumulativas 0,25, 0,5 y 0,75.X

p = [0.25 0.50 0.75]; % Vector of cumulative probabilities Yexact = quantile(X,p,2)
Yexact =    M×N×... tall double array      ?    ?    ?    ...     ?    ?    ?    ...     ?    ?    ?    ...     :    :    :     :    :    :  Preview deferred. Learn more. 

Cuando la función opera a lo largo de la primera dimensión y es un vector de probabilidades acumulativas, debe utilizar el algoritmo de aproximación basado en t-Digest para calcular los cuantiles.p Usar el algoritmo basado en ordenación para encontrar los cuantiles a lo largo de la primera dimensión de una matriz alta es computacionalmente intensivo.

Calcule los cuantiles aproximados a lo largo de la primera dimensión para las probabilidades acumulativas 0,25, 0,5 y 0,75.X Dado que la dimensión predeterminada es 1, no es necesario especificar un valor para.dim

Yapprox = quantile(X,p,'Method','approximate')
Yapprox =    M×N×... tall double array      ?    ?    ?    ...     ?    ?    ?    ...     ?    ?    ?    ...     :    :    :     :    :    :  Preview deferred. Learn more. 

Evalúe los arrays altos y traiga los resultados a la memoria usando.gather

[Yexact,Yapprox] = gather(Yexact,Yapprox);
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 9.7 sec Evaluation completed in 11 sec 

Muestre las primeras cinco filas de los cuantiles exactos de (a lo largo de la segunda dimensión) para las probabilidades acumulativas 0,25, 0,5 y 0,75.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

Cada fila de la matriz contiene los tres cuantiles de la fila correspondiente en.YexactX Por ejemplo,, y son los cuantiles 0,25, 0,5 y 0,75, respectivamente, de la primera fila de.30.5347.5688.5X

Mostrar los cuantiles aproximados de (a lo largo de la primera dimensión) para las probabilidades acumulativas 0,25, 0,5 y 0,75.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

Cada columna de la matriz corresponde a los tres cuantiles para cada columna de la matriz.YapproxX Por ejemplo, la primera columna de con elementos (– 7, 0, 11) contiene los cuantiles para la primera columna de.YapproxX

Calcule los cuantiles exactos y aproximados a lo largo de diferentes dimensiones de una matriz alta para probabilidades acumulativas espaciadas uniformemente.N

Cree una matriz alta que contenga un subconjunto de variables del conjunto de datos.Xairlinesmall Consulte para obtener más información sobre los pasos para extraer datos de una matriz alta.Cuantiles de vector alto para probabilidad dada

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
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 6). 
X = t{:,varnames}
X =    M×4 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           :          :            :           :           :          :            :           : 

Para encontrar cuantiles espaciados uniformemente a lo largo de la primera dimensión, debe utilizar el algoritmo de aproximación basado en.T-Digest El uso del algoritmo basado en ordenación (véase) para buscar cuantiles a lo largo de la primera dimensión de una matriz alta es intensivo en computacionalmente.Algoritmos

Calcule tres cuantiles espaciados uniformemente a lo largo de la primera dimensión de.X Dado que la dimensión predeterminada es 1, no es necesario especificar un valor para.dim Especifique si desea utilizar el algoritmo de aproximación.'Method','approximate'

N = 3; % Number of quantiles Yapprox = quantile(X,N,'Method','approximate')
Yapprox =    M×N×... tall double array      ?    ?    ?    ...     ?    ?    ?    ...     ?    ?    ?    ...     :    :    :     :    :    :  Preview deferred. Learn more. 

Para encontrar cuantiles espaciados uniformemente a lo largo de cualquier otra dimensión (no es), calcula los cuantiles exactos solamente, de modo que pueda realizar el cálculo eficientemente mediante el uso del algoritmo basado en ordenación.dim1quantile

Calcule tres cuantiles espaciados uniformemente a lo largo de la segunda dimensión de.X Dado que no es 1, devuelve los cuantiles exactos de forma predeterminada.dimquantile

Yexact = quantile(X,N,2)
Yexact =    M×N×... tall double array      ?    ?    ?    ...     ?    ?    ?    ...     ?    ?    ?    ...     :    :    :     :    :    :  Preview deferred. Learn more. 

Evalúe los arrays altos y traiga los resultados a la memoria usando.gather

[Yapprox,Yexact] = gather(Yapprox,Yexact);
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 10 sec Evaluation completed in 13 sec 

Muestre los cuantiles aproximados de (a lo largo de la primera dimensión) para las tres probabilidades acumulativas espaciadas uniformemente.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

Cada columna de la matriz corresponde a los tres cuantiles espaciados uniformemente para cada columna de la matriz.YapproxX Por ejemplo, la primera columna de con elementos (– 7, 0, 11) contiene los cuantiles para la primera columna de.YapproxX

Muestre las primeras cinco filas de los cuantiles exactos de (a lo largo de la segunda dimensión) para las tres probabilidades acumulativas espaciadas uniformemente.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

Cada fila de la matriz contiene los tres cuantiles espaciados uniformemente de la fila correspondiente en.YexactX Por ejemplo,, y son los cuantiles 0,25, 0,5 y 0,75, respectivamente, de la primera fila de.30.5347.5688.5X

Argumentos de entrada

contraer todo

Datos de entrada, especificados como vector o array.

Tipos de datos: double | single

Probabilidades acumulativas para las que se calculan los cuantiles, especificadas como un escalar o un vector de escalares de 0 a 1.

Ejemplo: 0,3

Ejemplo: [0,25, 0,5, 0,75]

Ejemplo: (0:0,25:1)

Tipos de datos: double | single

Número de cuantiles a calcular, especificado como un entero positivo. Devuelve cuantiles que dividen el conjunto de datos en distribuidos uniformemente + 1 segmentos.quantileNN

Tipos de datos: double | single

Cota a lo largo de la cual se solicitan los cuantiles de una matriz, especificadas como un entero positivo.X Por ejemplo, para una matriz, cuando = 1, devuelve el cuantil (s) de las columnas de; Cuando = 2, devuelve el cuantil (s) de las filas de.XdimquantileXdimquantileX Para una matriz multidimensional, la longitud de la dimensión TH es la misma que la longitud de.XdimYp

Tipos de datos: single | double

Vector de cotas, especificado como un vector entero positivo. Cada elemento de representa una dimensión de la matriz de entrada.vecdimX En la dimensión operativa más pequeña especificada (es decir, dimensión), la salida tiene una longitud igual al número de cuantiles solicitados (o bien).min(vecdim)YNlength(p) En cada una de las dimensiones operativas restantes, tiene la longitud 1.Y Las otras longitudes de cota son las mismas para y.XY

Por ejemplo, considere una matriz de 2 por 3 por 3 con.Xp = [0.2 0.4 0.6 0.8] En este caso, devuelve una matriz, donde cada página de la matriz contiene el 0,2, 0,4, 0,6, y 0,8 cuantiles de los elementos en la página correspondiente de.quantile(X,p,[1 2])X Dado que 1 y 2 son las dimensiones operativas, con y, la salida es una matriz de 4 por 1 por 3.min([1 2]) = 1length(p) = 4

Tipos de datos: single | double

Método para calcular cuantiles, especificados como o.'exact''approximate' De forma predeterminada, devuelve los cuantiles exactos mediante la implementación de un que usa la ordenación.quantileAlgoritmo Puede especificar para devolver cuantiles aproximados mediante la implementación de un algoritmo que utiliza.'method','approximate'quantileT-Digest

Tipos de datos: char | string

Argumentos de salida

contraer todo

Cuantiles de un vector de datos o matriz, devueltos como un escalar o una matriz para uno o varios valores de probabilidades acumulativas.

  • Si es un vector, entonces es un escalar o un vector con la misma longitud que el número de cuantiles solicitados (o). contiene el cuantil.XYNlength(p)Y(i)p(i)

  • Si es una matriz de cota, entonces es una matriz con la longitud de la dimensión operativa más pequeña igual al número de cuantiles solicitados (o).XdYNlength(p)

Más acerca de

contraer todo

Matriz multidimensional

A es una matriz con más de dos dimensiones.multidimensional array Por ejemplo, si es una matriz 1-por-3-por-4, entonces es una matriz 3-D.XX

Primera dimensión Nonsingleton

A es la primera dimensión de una matriz cuyo tamaño no es igual a 1.first nonsingleton dimension Por ejemplo, si es una matriz 1-por-2-por-3-por-4, entonces la segunda dimensión es la primera dimensión nonsingleton de.XX

Interpolación lineal

La interpolación lineal utiliza polinomios lineales para buscar yi = f (Xi), los valores de la función subyacente = f () en los puntos del vector o matriz.YXx Dados los puntos de datos (x1,y1yx2,y2), dondey1 = f (x1) yy2 = f (x2), la interpolación lineal encuentra = f () para un dado entreyxxx1 Yx2 como sigue:

y=f(x)=y1+(xx1)(x2x1)(y2y1).

Del mismo modo, si el 1.5/cuantil esny1.5/n y el 2.5/cuantil esny2.5/n, la interpolación lineal encuentra el 2.3/cuantilny2.3/n Como

y2.3n=y1.5n+(2.3n1.5n)(2.5n1.5n)(y2.5ny1.5n).

T-Digest

T-Digest es una estructura de datos probabilísticos que es una representación dispersa de la función de distribución acumulativa empírica (CDF) de un conjunto de datos.2 T-Digest es útil para calcular aproximaciones de estadísticas basadas en rangos (como percentiles y cuantiles) a partir de datos en línea o distribuidos de una manera que permita una precisión controlable, particularmente cerca de las colas de la distribución de datos.

Para los datos que se distribuyen en distintas particiones, t-Digest calcula cálculos cuantiles (y estimaciones de percentiles) para cada partición de datos por separado y, a continuación, combina las estimaciones mientras se mantiene un límite de memoria constante y una precisión relativa constante de cálculo (q(1q) para el cuantil ésimo).q Por estas razones, t-Digest es práctico para trabajar con matrices altas.

Para estimar cuantiles de una matriz que se distribuye en diferentes particiones, primero compile un t-Digest en cada partición de los datos. Un resumen de t agrupa los datos de la partición y resume cada clúster mediante un valor de centroide y un peso acumulado que representa el número de muestras que contribuyen al clúster. T-Digest utiliza grandes clusters (centroides ampliamente espaciados) para representar áreas de la CDF que están cerca de q = 0.5 y utiliza pequeños racimos (centroides estrechamente espaciados) para representar áreas de la CDF que están cerca de q = 0 O q = 1.

T-Digest controla el tamaño del clúster mediante una función de escalado que asigna un cuantil a un índice con un parámetro de compresiónqk δ. Es decir

k(q,δ)=δ(sin1(2q1)π+12),

donde el mapeo es monotónico con valor mínimok k(0,) = 0 y el valor máximo k(1,) = δ.

Función de escalado para = 10

La función de escalado traduce el cuantil al factor de escala con el fin de dar pasos de tamaño variable.qkq Como resultado, los tamaños de los clústeres son desiguales (más grandes alrededor de los cuantiles del centro y más pequeños cerca de q = 0 O q = 1). Los clústeres más pequeños permiten una mejor precisión cerca de los bordes de los datos.

Para actualizar un resumen t con una nueva observación que tenga un peso y una ubicación, busque el clúster más cercano a la nueva observación. A continuación, agregue el peso y actualice el centroide del clúster en función del promedio ponderado, siempre que el peso actualizado del clúster no supere la limitación de tamaño.

Puede combinar los resúmenes t independientes de cada partición de los datos tomando una Unión de los t-digests y fusionando sus centroides. Para combinar los digests t, primero ordene los clústeres de todos los t-digests independientes en orden decreciente de pesos del cluster. Luego, fusiona los clústeres vecinos, cuando cumplen con la limitación de tamaño, para formar un nuevo t-Digest.

Una vez que forme un t-Digest que represente el conjunto de datos completo, puede estimar los puntos finales (o los límites) de cada clúster en el t-Digest y, a continuación, utilizar la interpolación entre los puntos finales de cada clúster para encontrar estimaciones de cuantil precisas.

Algoritmos

Para un vector de elemento, calcula cuantiles mediante el uso de un algoritmo basado en ordenación de la siguiente manera:nXquantile

  1. Los elementos ordenados se toman como los cuantiles (0.5/), (1.5/),..., ([– 0.5]/).Xnnnn Por ejemplo:

    • Para un vector de datos de cinco elementos como {6, 3, 2, 10, 1}, los elementos ordenados {1, 2, 3, 6, 10} corresponden respectivamente a los cuantiles 0,1, 0,3, 0,5, 0,7, 0,9.

    • Para un vector de datos de seis elementos como {6, 3, 2, 10, 8, 1}, los elementos ordenados {1, 2, 3, 6, 8, 10} corresponden respectivamente a los cuantiles (0.5/6), (1.5/6), (2.5/6), (3.5/6), (4.5/6), (5.5/6).

  2. utiliza para calcular cuantiles para las probabilidades entre (0.5/) y ([– 0.5]/).quantileInterpolación linealnnn

  3. Para los cuantiles correspondientes a las probabilidades fuera de ese rango, asigna los valores mínimos o máximos de los elementos en.quantileX

trata a s como valores faltantes y los elimina.quantileNaN

Referencias

[1] Langford, E. “Quartiles in Elementary Statistics”, Journal of Statistics Education. Vol. 14, No. 3, 2006.

[2] Dunning, T., and O. Ertl. “Computing Extremely Accurate Quantiles Using T-Digests.” August 2017.

Capacidades ampliadas

Introducido antes de R2006a