percentil(), percentily() (agregační funkce)
Funkce percentile()
vypočítá odhad pro zadaný percentil 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()
Může 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ý percentil, podívejte se na percentilsw().
Poznámka
Tato funkce se používá ve spojení s operátorem summarize.
Syntax
percentile(
Výraz,
Percentil)
percentiles(
Výraz,
percentily)
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Typ | Vyž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ýrazů zadaných percentilů ve skupině, každý v samostatném sloupci.
Poznámka
Pokud chcete vrátit percentily v jednom sloupci, přečtěte si téma Vrácení percentilů jako pole.
Příklady
Výpočet jednoho percentilu
Následující příklad ukazuje hodnotu DamageProperty
větší než 95 % sady vzorků a menší než 5 % sady vzorků.
StormEvents | summarize percentile(DamageProperty, 95) by State
Výstup
Zobrazená tabulka výsledků obsahuje pouze prvních 10 řádků.
Stav | percentile_DamageProperty_95 |
---|---|
ATLANTIC SOUTH | 0 |
FLORIDA | 40000 |
GRUZIE | 143333 |
MISSISSIPPI | 80000 |
AMERICKÁ SAMOA | 250000 |
KENTUCKY | 35000 |
OHIO | 150000 |
KANSAS | 51392 |
MICHIGAN | 49167 |
ALABAMA | 50000 |
Výpočet několika percentilů
Následující příklad ukazuje hodnotu DamageProperty
současně vypočítanou pomocí hodnot 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ů.
Stav | percentile_DamageProperty_5 | percentile_DamageProperty_50 | percentile_DamageProperty_95 |
---|---|---|---|
ATLANTIC SOUTH | 0 | 0 | 0 |
FLORIDA | 0 | 0 | 40000 |
GRUZIE | 0 | 0 | 143333 |
MISSISSIPPI | 0 | 0 | 80000 |
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 matice.
Syntax
percentiles_array(
Výraz,
percentily)
Parametry
Název | Typ | Vyž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 pro expr zadaných percentilů ve skupině jako jeden sloupec typu dynamického pole.
Příklady
Percentily oddělené čárkami
Více percentilů lze získat jako pole v jednom dynamickém sloupci místo ve více sloupcích jako u percentilů().
TransformedSensorsData
| summarize percentiles_array(Value, 5, 25, 50, 75, 95), avg(Value) by SensorName
Výstup
V tabulce výsledků se zobrazí pouze prvních 10 řádků.
Název senzoru | 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 |
... | ... | ... |
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álové.
TransformedSensorsData
| summarize percentiles_array(Value, dynamic([5, 25, 50, 75, 95])), avg(Value) by SensorName
Výstup
V tabulce výsledků se zobrazí pouze prvních 10 řádků.
Název senzoru | 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 nejbližšího pořadí
P-ten percentil (0 <P<= 100) seznamu seřazených hodnot seřazených vzestupně je nejmenší hodnotou v seznamu. Procento P dat je menší nebo rovno hodnotě P-toho percentilu (z článku o percentilech na Wikipedii).
Definujte 0-tý percentil, který bude nejmenším členem základního souboru.
Poznámka
Vzhledem k přibližné 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 by se měla vzít v úvahu velikost základního souboru a chyba odhadu .
Chyba odhadu v percentilech
Agregace percentilů poskytuje přibližnou hodnotu pomocí T-Digest.
Poznámka
- Meze chyby odhadu se liší podle hodnoty 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. Nejhorší je na mediánu a je omezen na 1 %.
- Meze chyb jsou pozorovány na pořadí, 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é omezení 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 definovaly, kdy k tomu dojde.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro