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

Quantiles de un conjunto de datos

Descripción

ejemplo

Y = quantile(X,p) devuelve cuantiles de los elementos del vector de datos o matriz para la probabilidad o probabilidades acumulativas 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 probabilidades acumulativas espaciados 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, devuelve el cuantil 0,5 de todos los elementos de porque cada elemento de una matriz está contenido en el sector 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 basados en el 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 acumuladas 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

El uso 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 ( s 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 elementos con (0.5377, 1.8339, -2.2588, 0.8622).-0.3013X Dado que el valor predeterminado de es 1, puede devolver el mismo resultado con .dimy = quantile(X,0.3)

Calcule el cuantil 0,3 para cada fila de ( s 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, es el cuantil 0,3 de la primera fila de elementos con (0,5377, 0,3188, 3,5784, 0,7254, -0,1241, 0,6715).0.3844X

Calcular 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 elementos con (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 ( .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 matriz corresponde a los tres cuantiles espaciados uniformemente de cada fila de matriz.yX Por ejemplo, la primera fila de elementos with (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];

Calcular 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 de 0,75 de .Yall(1)XYall(2)X

Calcule los cuantiles 0,25 y 0,75 para cada página especificando las dimensiones 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 dimensiones 2 y 3 como dimensiones 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 cuartiles de un vector, con un número par de elementos.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 

Calcular los cuartiles de .x

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

     5     8    11

El uso es otra forma de calcular los cuartiles de .y = quantile(x,3)x

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

Encuentra la mediana y los cuartiles 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 cuartiles de .x

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

    4.5000    8.0000   11.5000

El uso es otra forma de calcular los cuartiles de .y = quantile(x,3)x

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

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

Al realizar cálculos en matrices altas, MATLAB® utiliza un grupo paralelo (predeterminado si tiene Parallel Computing Toolbox™) o la sesión local de MATLAB. Si desea ejecutar el ejemplo utilizando la sesión local de MATLAB cuando tiene Parallel Computing Toolbox, puede cambiar el entorno de ejecución global mediante la función.mapreducer

Cree un almacén de datos para el conjunto de datos.airlinesmall Trate los valores como datos que faltan para reemplazarlos por 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 los datos de la tabla alta en un vector alto.

t = tall(ds) % Tall table
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 12).  t =    Mx1 tall table      ArrTime     _______        735        1124        2218        1431         746        1547        1052        1134          :        : 
x = t{:,:}   % Tall vector
x =    Mx1 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 cuantitativo exacto de forma predeterminada.Xpquantile

p = 0.5; % Cumulative probability yExact = quantile(x,p)
yExact =    tall double      ? 

Calcule el cuantil aproximado de x para 0,5.p Especifique que se utilice un algoritmo de aproximación basado en la computación de los cuantiles.'Method','approximate'T-Digest

yApprox = quantile(x,p,'Method','approximate')
yApprox =    MxNx... tall double array      ?    ?    ?    ...     ?    ?    ?    ...     ?    ?    ?    ...     :    :    :     :    :    : 

Evalúe las matrices altas y lleve los resultados a la memoria mediante .gather

[yExact,yApprox] = gather(yExact,yApprox)
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 6.7 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 2.1 sec - Pass 4 of 4: Completed in 1.7 sec Evaluation completed in 15 sec 
yExact = 1522 
yApprox = 1.5220e+03 

Los valores del cuantil aproximado y el cuantil exacto son los mismos que 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.

Al realizar cálculos en matrices altas, MATLAB® utiliza un grupo paralelo (predeterminado si tiene Parallel Computing Toolbox™) o la sesión local de MATLAB. Si desea ejecutar el ejemplo utilizando la sesión local de MATLAB cuando tiene Parallel Computing Toolbox, puede cambiar el entorno de ejecución global mediante la función.mapreducer

Cree una matriz alta que contenga un subconjunto de variables del conjunto de datos.Xairlinesmall Consulte los pasos para extraer datos de una matriz alta.Quantiles de Vector Alto para la 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: 4). 
X = t{:,varnames} % Tall matrix
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           :          :            :           :           :          :            :           : 

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

Calcule los cuantiles exactos de a lo largo de la segunda dimensión para las probabilidades acumuladas 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 =    MxNx... tall double array      ?    ?    ?    ...     ?    ?    ?    ...     ?    ?    ?    ...     :    :    :     :    :    : 

Cuando la función funciona 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 El uso del algoritmo basado en la 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 de a lo largo de la primera dimensión para las probabilidades acumuladas 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 =    MxNx... tall double array      ?    ?    ?    ...     ?    ?    ?    ...     ?    ?    ?    ...     :    :    :     :    :    : 

Evalúe las matrices altas y lleve los resultados a la memoria mediante .gather

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

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

Yapprox
Yapprox = 3×4
103 ×

   -0.0070    1.1149    0.9322    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 with elements (–7, 0, 11) contiene los cuantiles de 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

Al realizar cálculos en matrices altas, MATLAB® utiliza un grupo paralelo (predeterminado si tiene Parallel Computing Toolbox™) o la sesión local de MATLAB. Si desea ejecutar el ejemplo utilizando la sesión local de MATLAB cuando tiene Parallel Computing Toolbox, puede cambiar el entorno de ejecución global mediante la función.mapreducer

Cree una matriz alta que contenga un subconjunto de variables del conjunto de datos.Xairlinesmall Consulte los pasos para extraer datos de una matriz alta.Quantiles de Vector Alto para la 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: 4). 
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           :          :            :           :           :          :            :           : 

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 la ordenación (consulte ) para encontrar cuantiles a lo largo de la primera dimensión de una matriz alta es computacionalmente intensivo.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 para utilizar el algoritmo de aproximación.'Method','approximate'

N = 3; % Number of quantiles Yapprox = quantile(X,N,'Method','approximate')
Yapprox =    MxNx... tall double array      ?    ?    ?    ...     ?    ?    ?    ...     ?    ?    ?    ...     :    :    :     :    :    : 

Para encontrar cuantiles espaciados uniformemente a lo largo de cualquier otra dimensión ( no es ), calcula los cuantiles exactos solamente, para que pueda realizar el cálculo de manera eficiente mediante el 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 =    MxNx... tall double array      ?    ?    ?    ...     ?    ?    ?    ...     ?    ?    ?    ...     :    :    :     :    :    : 

Evalúe las matrices altas y lleve los resultados a la memoria mediante .gather

[Yapprox,Yexact] = gather(Yapprox,Yexact);
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 7.2 sec Evaluation completed in 9.9 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.9322    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 with elements (–7, 0, 11) contiene los cuantiles de 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 matriz.

Tipos de datos: double | single

Probabilidades acumuladas para las que calcular los cuantiles, especificados como escalares o vectoriales 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 que se deben calcular, especificadocomo un entero positivo. devuelve cuantiles que dividen el conjunto de datos en segmentos +1 distribuidos uniformemente.quantileNN

Tipos de datos: double | single

Dimensión a lo largo de la cual se solicitan los cuantiles de una matriz, especificada como un entero positivo.X Por ejemplo, para una matriz , cuando el número 1, devuelve los cuantiles de las columnas de ; cuando el número 2, devuelve los cuantiles de las filas de .XdimquantileXdimquantileX Para una matriz multidimensional, la longitud de la dimensión th de es la misma que la longitud de .XdimYp

Tipos de datos: single | double

Vector de dimensiones, especificado como un vector entero positivo. Cada elemento de representa una dimensión de la matriz de entrada .vecdimX En la dimensión de funcionamiento especificada más pequeña (es decir, dimensión), la salida tiene una longitud igual al número de cuantiles solicitados (ya sea o ).min(vecdim)YNlength(p) En cada una de las dimensiones de funcionamiento restantes, tiene longitud 1.Y Las otras longitudes de dimensión 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 los cuantiles 0.2, 0.4, 0.6 y 0.8 de los elementos de la página correspondiente de .quantile(X,p,[1 2])X Debido a 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 los cuantiles, especificadocomo 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 utilice .'method','approximate'quantileT-Digest

Tipos de datos: char | string

Argumentos de salida

contraer todo

Quantiles de un vector de datos o matriz, devuelto como un escalar o 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 dimensiones , 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.matriz multidimensional Por ejemplo, si es una matriz 1-by-3-by-4, entonces es una matriz 3D.XX

Dimensión nonsingleton

A de una matriz es una dimensión cuyo tamaño no es igual a 1.dimensión nonsingleton A de una matriz es la primera dimensión que satisface la condición nonsingleton.primera dimensión no singletón Por ejemplo, si es una matriz 1-by-1-by-2-by-4, la tercera dimensión es la primera dimensión nonsingleton de .XX

Interpolación lineal

La interpolación lineal utiliza polinomios lineales para y 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, y1) y (x2, y2), dondey1 • f(x1) yy2 • f(x2), la interpolación lineal encuentra el valor de f( ) para un determinado entreyxxx1 Yx2 de la siguiente manera:

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

Del mismo modo, si el cuantil 1,5/ esny1.5/n y el cuantil 2.5/ esny2.5/n, a continuación, la interpolación lineal encuentra el cuantil 2.3/ny2.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ística 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 permite una precisión controlable, particularmente cerca de las colas de la distribución de datos.

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

Para estimar los cuantiles de una matriz que se distribuye en diferentes particiones, primero cree un t-digest en cada partición de los datos. Un t-digest agrupa los datos de la partición y resume cada clúster por un valor centroide y un peso acumulado que representa el número de muestras que contribuyen al clúster. T-digest utiliza grandes racimos (centroides ampliamente espaciados) para representar áreas del CDF que están cerca q = 0.5 y utiliza pequeños racimos (centroides estrechamente espaciados) para representar áreas del CDF que están cerca 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 la cartografía es monotónica con un valor mínimok k(0,δ) = 0 y valor máximo k(1,δ) = δ. La siguiente figura muestra la función de escalado para δ = 10.

La función de escalado traduce el cuantil al factor de escala para dar pasos de tamaño variable en .qkq Como resultado, los tamaños de los racimos son desiguales (más grandes alrededor de los cuantiles centrales y más pequeños cerca 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 t-digest 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 resúmenes t independientes de cada partición de los datos tomando una unión de los resúmenes t y fusionando sus centroides. Para combinar resúmenes t, primero ordene los clústeres de todos los resúmenes t independientes en orden decreciente de ponderaciones de clúster. A continuación, combine los clústeres vecinos, cuando cumplan la limitación de tamaño, para formar un nuevo t-digest.

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

Algoritmos

Para un vector -element , calcula los cuantiles mediante un algoritmo basado en la ordenación de la siguiente manera:nXquantile

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

    • Para un vector de datos de cinco elementos, como el número 6, 3, 2, 10, 1o, los elementos ordenados 1, 2, 3, 6, 10, respectivamente, corresponden a los cuantiles 0.1, 0.3, 0.5, 0.7, 0.9.

    • Para un vector de datos de seis elementos como el número 6, 3, 2, 10, 8, 1o, los elementos ordenados 1, 2, 3, 6, 8, 10, respectivamente corresponden a los cuantillos (0,5/6), (1,5/6), (2,5/6), (3,5/6), (4,5/6), (5,5/6).

  2. utiliza para calcular los cuantiles para probabilidades entre (0,5/ ) y ([ – 0,5]/ ).quantileInterpolación linealnnn

  3. Para los cuantiles correspondientes a las probabilidades fuera de ese intervalo, asigna los valores mínimo o máximo de los elementos en .quantileX

trata s como valores que faltan 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