percentile(), percentiles() (função de agregação)
A percentile()
função calcula uma estimativa para o percentil de classificação mais próximo especificado da população definida pelo expr.
A precisão depende da densidade da população na região do percentil.
percentiles()
funciona de forma semelhante a percentile()
. No entanto, percentiles()
pode calcular vários valores de percentil ao mesmo tempo, o que é mais eficiente do que calcular cada valor de percentil separadamente.
Para calcular percentis ponderados, consulte percentilesw().
Observação
Essa função é usada em conjunto com o operador summarize.
Syntax
percentile(
Expr,
Percentil)
percentiles(
Expr,
percentis)
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Tipo | Obrigatório | Descrição |
---|---|---|---|
expr | string |
✔️ | A expressão a ser usada para cálculo de agregação. |
Percentil | int ou longo | ✔️ | Uma constante que especifica o percentil. |
percentis | int ou longo | ✔️ | Um ou mais percentis separados por vírgulas. |
Retornos
Retorna uma tabela com as estimativas para expr dos percentis especificados no grupo, cada um em uma coluna separada.
Observação
Para retornar os percentis em uma única coluna, consulte Retornar percentis como uma matriz.
Exemplos
Calcular um único percentil
O exemplo a seguir mostra o valor de DamageProperty
ser maior que 95% do conjunto de exemplos e menor que 5% do conjunto de exemplos.
StormEvents | summarize percentile(DamageProperty, 95) by State
Saída
A tabela de resultados mostrada inclui apenas as primeiras 10 linhas.
Estado | percentile_DamageProperty_95 |
---|---|
ATLÂNTICO SUL | 0 |
FLÓRIDA | 40000 |
GEÓRGIA | 143333 |
MISSISSIPI | 80000 |
SAMOA AMERICANA | 250.000 |
KENTUCKY | 35.000 |
OHIO | 150.000 |
KANSAS | 51392 |
MICHIGAN | 49167 |
ALABAMA | 50000 |
Calcular vários percentis
O exemplo a seguir mostra o valor de DamageProperty
calculado simultaneamente usando 5, 50 (mediana) e 95.
StormEvents | summarize percentiles(DamageProperty, 5, 50, 95) by State
Saída
A tabela de resultados mostrada inclui apenas as primeiras 10 linhas.
Estado | percentile_DamageProperty_5 | percentile_DamageProperty_50 | percentile_DamageProperty_95 |
---|---|---|---|
ATLÂNTICO SUL | 0 | 0 | 0 |
FLÓRIDA | 0 | 0 | 40000 |
GEÓRGIA | 0 | 0 | 143333 |
MISSISSIPI | 0 | 0 | 80000 |
SAMOA AMERICANA | 0 | 0 | 250.000 |
KENTUCKY | 0 | 0 | 35.000 |
OHIO | 0 | 2000 | 150.000 |
KANSAS | 0 | 0 | 51392 |
MICHIGAN | 0 | 0 | 49167 |
ALABAMA | 0 | 0 | 50000 |
... | ... |
Retornar percentis como uma matriz
Em vez de retornar os valores em colunas individuais, use a percentiles_array()
função para retornar os percentis em uma única coluna do tipo de matriz dinâmica.
Syntax
percentiles_array(
Expr,
percentis)
Parâmetros
Nome | Tipo | Obrigatório | Descrição |
---|---|---|---|
expr | string |
✔️ | A expressão a ser usada para cálculo de agregação. |
percentis | int, long ou dynamic | ✔️ | Um ou mais percentis separados por vírgulas ou uma matriz dinâmica de percentis. Cada percentil pode ser um valor inteiro ou longo. |
Retornos
Retorna uma estimativa para expr dos percentis especificados no grupo como uma única coluna do tipo de matriz dinâmica.
Exemplos
Percentis separados por vírgulas
Vários percentis podem ser obtidos como uma matriz em uma única coluna dinâmica, em vez de em várias colunas como com percentis().
TransformedSensorsData
| summarize percentiles_array(Value, 5, 25, 50, 75, 95), avg(Value) by SensorName
Saída
A tabela de resultados exibe apenas as primeiras 10 linhas.
SensorName | percentiles_Value | avg_Value |
---|---|---|
sensor-82 | ["0.048141473520867069","0.24407515500271132","0.48974511106780577","0.74160998970950343","0.94587903204190071"] | 0.493950914 |
sensor-130 | ["0.049200214398937764","0.25735850440187535","0.51206374010048239","0.74182335059053839","0.95210342463616771"] | 0.505111463 |
sensor-56 | ["0.04857779335488676","0.24709868149337144","0.49668762923789589","0.74458470404241883","0.94889104840865857"] | 0.497955018 |
sensor-24 | ["0.051507199150534679","0.24803904945640423","0.50397070213183581","0.75653888126010793","0.9518782718727431"] | 0.501084379 |
sensor-47 | ["0.045991246974755672","0.24644331118208851","0.48089197707088743","0.74475142784472248","0.9518322864959039"] | 0.49386228 |
sensor-135 | ["0.05132897529660399","0.24204987641954018","0.48470113942206461","0.74275730068433621","0.94784079559229406"] | 0.494817619 |
sensor-74 | ["0.048914714739047828","0.25160926036445724","0.49832498850160978","0.75257887767110776","0.94932261924236094"] | 0.501627252 |
sensor-173 | ["0.048333149363009836","0.26084250046756496","0.51288012531934613","0.74964772791583412","0.95156058795294"] | 0.505401226 |
sensor-28 | ["0.048511161184567046","0.2547387968731824","0.50101318228599656","0.75693845702682039","0.95243122486483989"] | 0.502066244 |
sensor-34 | ["0.049980293859462954","0.25094722564949412","0.50914023067384762","0.75571549713447961","0.95176564809278674"] | 0.504309494 |
... | ... | ... |
Matriz dinâmica de percentis
Percentis para percentiles_array
podem ser especificados em uma matriz dinâmica de números inteiros ou de ponto flutuante. A matriz deve ser constante, mas não precisa ser literal.
TransformedSensorsData
| summarize percentiles_array(Value, dynamic([5, 25, 50, 75, 95])), avg(Value) by SensorName
Saída
A tabela de resultados exibe apenas as primeiras 10 linhas.
SensorName | percentiles_Value | avg_Value |
---|---|---|
sensor-82 | ["0.048141473520867069","0.24407515500271132","0.48974511106780577","0.74160998970950343","0.94587903204190071"] | 0.493950914 |
sensor-130 | ["0.049200214398937764","0.25735850440187535","0.51206374010048239","0.74182335059053839","0.95210342463616771"] | 0.505111463 |
sensor-56 | ["0.04857779335488676","0.24709868149337144","0.49668762923789589","0.74458470404241883","0.94889104840865857"] | 0.497955018 |
sensor-24 | ["0.051507199150534679","0.24803904945640423","0.50397070213183581","0.75653888126010793","0.9518782718727431"] | 0.501084379 |
sensor-47 | ["0.045991246974755672","0.24644331118208851","0.48089197707088743","0.74475142784472248","0.9518322864959039"] | 0.49386228 |
sensor-135 | ["0.05132897529660399","0.24204987641954018","0.48470113942206461","0.74275730068433621","0.94784079559229406"] | 0.494817619 |
sensor-74 | ["0.048914714739047828","0.25160926036445724","0.49832498850160978","0.75257887767110776","0.94932261924236094"] | 0.501627252 |
sensor-173 | ["0.048333149363009836","0.26084250046756496","0.51288012531934613","0.74964772791583412","0.95156058795294"] | 0.505401226 |
sensor-28 | ["0.048511161184567046","0.2547387968731824","0.50101318228599656","0.75693845702682039","0.95243122486483989"] | 0.502066244 |
sensor-34 | ["0.049980293859462954","0.25094722564949412","0.50914023067384762","0.75571549713447961","0.95176564809278674"] | 0.504309494 |
... | ... | ... |
Percentil de classificação mais próximo
O p-ésimo percentil (0 <P<= 100) de uma lista de valores ordenados, classificados em ordem crescente, é o menor valor da lista. O percentual P dos dados é menor ou igual ao valor de percentil P-th (do artigo da Wikipédia sobre percentis).
Defina 0-º percentil como o menor membro da população.
Observação
Dada a natureza aproximada do cálculo, o valor real retornado pode não ser um membro da população. A definição de classificação mais próxima significa que P=50 não está em conformidade com a definição interpolativa da mediana. Ao avaliar a significância dessa discrepância para o aplicativo específico, o tamanho da população e um erro de estimativa devem ser levados em conta.
Erro de estimativa em percentuais
A agregação de percentis fornece um valor aproximado usando T-Digest.
Observação
- Os limites no erro de estimativa variam de acordo percentil solicitado. A melhor precisão é em ambas as extremidades da escala [0,.100]. Os percentis 0 e 100 são os valores mínimo e máximo exatos da distribuição. A precisão diminui gradativamente rumo à parte central da escala. É pior na mediana e está limitado a 1%.
- Os limites de erro são observados na classificação, não no valor. Suponha que percentil(X, 50) retornou um valor de Xm. A estimativa garante que pelo menos 49% e no máximo 51% dos valores de X sejam menores ou iguais a Xm. Não há limite teórico na diferença entre Xm e o valor mediano real de X.
- Às vezes, a estimativa pode resultar em um valor preciso, mas não há condições confiáveis para definir quando será o caso.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de