percentil(), percentil() (agregační funkce)

Platí pro: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Funkce percentile() vypočítá odhad zadaného percentilu nejbližšího pořadí základního souboru definovaného výrazem. Přesnost závisí na hustotě populace v oblasti percentilu.

percentiles() funguje podobně percentile()jako . percentiles() Lze však vypočítat více hodnot percentilu najednou, což je efektivnější než výpočet jednotlivých hodnot percentilu samostatně.

Pokud chcete vypočítat vážené percentily, podívejte se na percentilsw().

Poznámka:

Tato funkce se používá ve spojení s operátorem sumarizace.

Syntaxe

percentile(percentil výrazu, )

percentiles(, percentily výrazů)

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Type Požadováno Popis
výraz string ✔️ Výraz, který se má použít pro výpočet agregace.
percentil int nebo long ✔️ Konstanta, která určuje percentil.
percentily int nebo long ✔️ Jeden nebo více percentilů oddělených čárkami.

Návraty

Vrátí tabulku s odhady výrazu zadaných percentilů ve skupině, z nichž každý je v samostatném sloupci.

Poznámka:

Pokud chcete vrátit percentily v jednom sloupci, podívejte se na návratové percentily jako pole.

Příklady

Výpočet jednoho percentilu

Následující příklad ukazuje hodnotu DamageProperty větší než 95 % ukázkové sady a menší než 5 % ukázkové sady.

StormEvents | summarize percentile(DamageProperty, 95) by State

Výstup

Zobrazená tabulka výsledků obsahuje pouze prvních 10 řádků.

State percentile_DamageProperty_95
ATLANTICKÝ JIH 0
FLORIDA 40000
GEORGIA 143333
MISSISSIPPI 800 000
AMERICKÁ SAMOA 250000
KENTUCKY 35000
OHIO 150000
KANSAS 51392
MICHIGAN 49167
ALABAMA 50000

Výpočet více percentilů

Následující příklad ukazuje hodnotu DamageProperty souběžného výpočtu pomocí 5, 50 (medián) a 95.

StormEvents | summarize percentiles(DamageProperty, 5, 50, 95) by State

Výstup

Zobrazená tabulka výsledků obsahuje pouze prvních 10 řádků.

State percentile_DamageProperty_5 percentile_DamageProperty_50 percentile_DamageProperty_95
ATLANTICKÝ JIH 0 0 0
FLORIDA 0 0 40000
GEORGIA 0 0 143333
MISSISSIPPI 0 0 800 000
AMERICKÁ SAMOA 0 0 250000
KENTUCKY 0 0 35000
OHIO 0 2000 150000
KANSAS 0 0 51392
MICHIGAN 0 0 49167
ALABAMA 0 0 50000
... ...

Vrácení percentilů jako pole

Místo vrácení hodnot v jednotlivých sloupcích použijte percentiles_array() funkci k vrácení percentilů v jednom sloupci dynamického typu pole.

Syntaxe

percentiles_array(, percentily výrazů)

Parametry

Název Type Požadováno Popis
výraz string ✔️ Výraz, který se má použít pro výpočet agregace.
percentily int, long nebo dynamic ✔️ Jeden nebo více percentilů oddělených čárkami nebo dynamické pole percentilů. Každý percentil může být celé číslo nebo dlouhá hodnota.

Návraty

Vrátí odhad výrazu zadaných percentilů ve skupině jako jeden sloupec dynamického typu pole.

Příklady

Percentily oddělené čárkami

Více percentilů lze získat jako pole v jednom dynamickém sloupci, nikoli ve více sloupcích jako u percentilů().

TransformedSensorsData
| summarize percentiles_array(Value, 5, 25, 50, 75, 95), avg(Value) by SensorName

Výstup

Tabulka výsledků zobrazuje pouze prvních 10 řádků.

SensorName percentiles_Value avg_Value
snímač-82 ["0.048141473520867069","0.24407515500271132","0.48974511106780577","0.74160998970950343","0.94587903204190071"] 0.493950914
snímač-130 ["0.049200214398937764","0.25735850440187535","0.51206374010048239","0.74182335059053839","0.95210342463616771"] 0.505111463
snímač-56 ["0.04857779335488676","0.24709868149337144","0.49668762923789589","0.74458470404241883","0.94889104840865857"] 0.497955018
snímač-24 ["0.051507199150534679","0.24803904945640423","0.50397070213183581","0.75653888126010793","0.9518782718727431"] 0.501084379
snímač-47 ["0.045991246974755672","0.24644331118208851","0.48089197707088743","0.74475142784472248","0.9518322864959039"] 0.49386228
snímač-135 ["0.05132897529660399","0.24204987641954018","0.48470113942206461","0.74275730068433621","0.94784079559229406"] 0.494817619
snímač-74 ["0.048914714739047828","0.25160926036445724","0.49832498850160978","0.75257887767110776","0.94932261924236094"] 0.501627252
snímač-173 ["0.048333149363009836","0.26084250046756496","0.51288012531934613","0.74964772791583412","0.95156058795294"] 0.505401226
snímač-28 ["0.048511161184567046","0.2547387968731824","0.50101318228599656","0.75693845702682039","0.95243122486483989"] 0.502066244
snímač-34 ["0.049980293859462954","0.25094722564949412","0.50914023067384762","0.75571549713447961","0.95176564809278674"] 0.504309494
... ... ...

Dynamické pole percentilů

Percentily pro percentiles_array lze zadat v dynamické matici celých čísel nebo čísel s plovoucí desetinou čárkou. Pole musí být konstantní, ale nemusí být literál.

TransformedSensorsData
| summarize percentiles_array(Value, dynamic([5, 25, 50, 75, 95])), avg(Value) by SensorName

Výstup

Tabulka výsledků zobrazuje pouze prvních 10 řádků.

SensorName percentiles_Value avg_Value
snímač-82 ["0.048141473520867069","0.24407515500271132","0.48974511106780577","0.74160998970950343","0.94587903204190071"] 0.493950914
snímač-130 ["0.049200214398937764","0.25735850440187535","0.51206374010048239","0.74182335059053839","0.95210342463616771"] 0.505111463
snímač-56 ["0.04857779335488676","0.24709868149337144","0.49668762923789589","0.74458470404241883","0.94889104840865857"] 0.497955018
snímač-24 ["0.051507199150534679","0.24803904945640423","0.50397070213183581","0.75653888126010793","0.9518782718727431"] 0.501084379
snímač-47 ["0.045991246974755672","0.24644331118208851","0.48089197707088743","0.74475142784472248","0.9518322864959039"] 0.49386228
snímač-135 ["0.05132897529660399","0.24204987641954018","0.48470113942206461","0.74275730068433621","0.94784079559229406"] 0.494817619
snímač-74 ["0.048914714739047828","0.25160926036445724","0.49832498850160978","0.75257887767110776","0.94932261924236094"] 0.501627252
snímač-173 ["0.048333149363009836","0.26084250046756496","0.51288012531934613","0.74964772791583412","0.95156058795294"] 0.505401226
snímač-28 ["0.048511161184567046","0.2547387968731824","0.50101318228599656","0.75693845702682039","0.95243122486483989"] 0.502066244
snímač-34 ["0.049980293859462954","0.25094722564949412","0.50914023067384762","0.75571549713447961","0.95176564809278674"] 0.504309494
... ... ...

Nearest-rank percentil

P-th percentil (0 <P<= 100) seznamu seřazených hodnot seřazených ve vzestupném pořadí je nejmenší hodnotou v seznamu. Procento P dat je menší nebo rovno hodnotě P-th percentilu (z článku wikipedie o percentilech).

Definujte 0-tý percentil jako nejmenší člen základního souboru.

Poznámka:

Vzhledem k povaze výpočtu nemusí být skutečná vrácená hodnota členem základního souboru. Definice nejbližšího pořadí znamená, že P=50 neodpovídá interpolační definici mediánu. Při vyhodnocování významu této nesrovnalosti pro konkrétní aplikaci je třeba vzít v úvahu velikost základního souboru a odhad chyby.

Odhad chyby v percentilech

Agregace percentilů poskytuje přibližnou hodnotu pomocí funkce T-Digest.

Poznámka:

  • Hranice chyby odhadu se liší s hodnotou požadovaného percentilu. Nejlepší přesnost je na obou koncích měřítka [0..100]. Percentily 0 a 100 jsou přesné minimální a maximální hodnoty rozdělení. Přesnost se postupně snižuje směrem ke středu měřítka. Je to nejhorší v mediánu a je omezený na 1 %.
  • V pořadí se pozorují chybové meze, ne na hodnotě. Předpokládejme, že percentil(X; 50) vrátil hodnotu Xm. Odhad zaručuje, že alespoň 49 % a maximálně 51 % hodnot X je menší nebo rovno Xm. Neexistuje žádný teoretický limit rozdílu mezi Xm a skutečnou mediánnou hodnotou X.
  • Odhad může někdy vést k přesné hodnotě, ale neexistují žádné spolehlivé podmínky, které by bylo možné definovat, kdy bude případ.