Perzentil(), Perzentilen() (Aggregationsfunktion)

Die percentile() Funktion berechnet eine Schätzung für das angegebene Perzentil der durch expr definierten Population. Die Genauigkeit hängt von der Bevölkerungsdichte in der Region des Perzentils ab.

percentiles() funktioniert ähnlich wie percentile(). percentiles() Kann jedoch mehrere Perzentilwerte gleichzeitig berechnen, was effizienter ist, als jeden Perzentilwert separat zu berechnen.

Informationen zum Berechnen gewichteter Perzentilen finden Sie unter Perzentilsw().

Hinweis

Diese Funktion wird in Verbindung mit dem Zusammenfassungsoperator verwendet.

Syntax

percentile(Expr,Perzentil)

percentiles(Expr,Perzentile)

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Typ Erforderlich BESCHREIBUNG
expr string ✔️ Der Ausdruck, der für die Aggregationsberechnung verwendet werden soll.
Perzentil int oder long ✔️ Eine Konstante, die das Perzentil angibt.
Perzentile int oder long ✔️ Mindestens ein durch Kommas getrenntes Perzentil.

Gibt zurück

Gibt eine Tabelle mit den Schätzungen für den Expr der angegebenen Perzentile in der Gruppe zurück, die jeweils in einer separaten Spalte enthalten sind.

Hinweis

Informationen zum Zurückgeben der Perzentile in einer einzelnen Spalte finden Sie unter Zurückgeben von Perzentilen als Array.

Beispiele

Berechnen eines einzelnen Perzentils

Das folgende Beispiel zeigt den Wert, DamageProperty größer als 95 % des Beispielsatzes und kleiner als 5 % des Beispielsatzes zu sein.

StormEvents | summarize percentile(DamageProperty, 95) by State

Ausgabe

Die angezeigte Ergebnistabelle enthält nur die ersten 10 Zeilen.

State percentile_DamageProperty_95
ATLANTIC SOUTH 0
FLORIDA 40.000
GEORGIA 143333
MISSISSIPPI 80.000
AMERIKANISCH SAMOA 250.000
KENTUCKY 35000
OHIO 150.000
KANSAS 51392
MICHIGAN 49167
ALABAMA 50000

Berechnen mehrerer Perzentile

Das folgende Beispiel zeigt den Wert von DamageProperty , der gleichzeitig mit 5, 50 (Median) und 95 berechnet wird.

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

Ausgabe

Die angezeigte Ergebnistabelle enthält nur die ersten 10 Zeilen.

State percentile_DamageProperty_5 percentile_DamageProperty_50 percentile_DamageProperty_95
ATLANTIC SOUTH 0 0 0
FLORIDA 0 0 40.000
GEORGIA 0 0 143333
MISSISSIPPI 0 0 80.000
AMERIKANISCH SAMOA 0 0 250.000
KENTUCKY 0 0 35000
OHIO 0 2000 150.000
KANSAS 0 0 51392
MICHIGAN 0 0 49167
ALABAMA 0 0 50000
... ...

Zurückgeben von Perzentilen als Array

Anstatt die Werte in einzelnen Spalten zurückzugeben, verwenden Sie die percentiles_array() Funktion, um die Perzentilen in einer einzelnen Spalte des dynamischen Arraytyps zurückzugeben.

Syntax

percentiles_array(Expr,Perzentile)

Parameter

Name Typ Erforderlich BESCHREIBUNG
expr string ✔️ Der Ausdruck, der für die Aggregationsberechnung verwendet werden soll.
Perzentile int, long oder dynamisch ✔️ Ein oder mehrere durch Trennzeichen getrennte Perzentile oder ein dynamisches Array von Perzentilen. Jedes Perzentil kann ein ganzzahliger oder langer Wert sein.

Gibt zurück

Gibt eine Schätzung für den Expr der angegebenen Perzentile in der Gruppe als einzelne Spalte des dynamischen Arraytyps zurück.

Beispiele

Kommagetrennte Perzentile

Mehrere Perzentile können als Array in einer einzelnen dynamischen Spalte abgerufen werden, anstatt in mehreren Spalten wie bei Perzentilen().

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

Ausgabe

In der Ergebnistabelle werden nur die ersten 10 Zeilen angezeigt.

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
... ... ...

Dynamisches Array von Perzentilen

Perzentilen für percentiles_array können in einem dynamischen Array ganzzahliger Oder Gleitkommazahlen angegeben werden. Das Array muss konstant sein, muss aber nicht Literal sein.

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

Ausgabe

In der Ergebnistabelle werden nur die ersten 10 Zeilen angezeigt.

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
... ... ...

Perzentil der nächstgelegenen Rangfolge

P-te Perzentil (0 <P<= 100) einer Liste von sortierten Werten, sortiert in aufsteigender Reihenfolge, ist der kleinste Wert in der Liste. Das P-Prozent der Daten ist kleiner oder gleich dem P-ten-Perzentilwert (aus Wikipedia-Artikel zu Perzentilen).

Definieren Sie 0-te Perzentile, um das kleinste Mitglied der Bevölkerung zu sein.

Hinweis

In Anbetracht der Art der Caimierung der Berechnung ist der tatsächlich zurückgegebene Wert möglicherweise kein Mitglied der Population. Die Definition des nächstgelegenen Rangs bedeutet, dass P=50 nicht der interpolativen Definition des Medians entspricht. Bei der Bewertung der Bedeutung dieser Diskrepanz für die spezifische Anwendung sollten die Größe der Bevölkerung und ein Schätzfehler berücksichtigt werden.

Schätzungsfehler in Perzentilen

Das Perzentilaggregat stellt einen ungefähren Wert mithilfe von T-Digestbereit.

Hinweis

  • Die Grenzen für den Schätzungsfehler variieren je nach dem Wert des angeforderten Perzentils. Die beste Genauigkeit ist an beiden Enden der [0..100]-Skala. Die Perzentilen 0 und 100 sind die genauen Mindest- und Höchstwerte der Verteilung. Die Genauigkeit nimmt zur Mitte der Skala hin ab. Es ist am schlechtesten im Median und ist auf 1 % begrenzt.
  • Fehlergrenzen werden in Bezug auf den Rang, nicht auf den Wert sichtbar. Angenommen, Perzentil (X, 50) hat den Wert Xm zurückgegeben. Die Schätzung garantiert, dass mindestens 49% und höchstens 51% der Werte von X kleiner oder gleich Xm sind. Es gibt keine theoretische Grenze für den Unterschied zwischen Xm und dem tatsächlichen Medianwert von X.
  • Die Schätzung kann manchmal zu einem genauen Wert führen, aber es gibt keine zuverlässigen Bedingungen, um zu definieren, wann dies der Fall sein wird.