Dela via


percentile(), percentiles() (sammansättningsfunktion)

Funktionen percentile() beräknar en uppskattning för den angivna percentilen i närmaste rangordning i populationen som definieras av uttr. Noggrannheten beror på populationens densitet i percentilens region.

percentiles() fungerar på samma sätt som percentile(). Kan dock percentiles() beräkna flera percentilvärden samtidigt, vilket är mer effektivt än att beräkna varje percentilvärde separat.

Information om hur du beräknar viktade percentiler finns i percentilesw().

Anteckning

Den här funktionen används tillsammans med summarize-operatorn.

Syntax

percentile(Uttryck,Percentil)

percentiles(Uttryck,percentiler)

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Obligatorisk Beskrivning
Uttryck string ✔️ Uttrycket som ska användas för aggregeringsberäkning.
Percentil int eller long ✔️ En konstant som anger percentilen.
percentiler int eller long ✔️ En eller flera kommaavgränsade percentiler.

Returer

Returnerar en tabell med uppskattningarna för uttr av de angivna percentilerna i gruppen, var och en i en separat kolumn.

Anteckning

Information om hur du returnerar percentilerna i en enda kolumn finns i Returnera percentiler som en matris.

Exempel

Beräkna en percentil

I följande exempel visas värdet DamageProperty för att vara större än 95 % av urvalsuppsättningen och mindre än 5 % av urvalsuppsättningen.

StormEvents | summarize percentile(DamageProperty, 95) by State

Resultat

Resultattabellen som visas innehåller bara de första 10 raderna.

Tillstånd percentile_DamageProperty_95
ATLANTEN, SÖDRA 0
FLORIDA 40000
GEORGIEN 143333
MISSISSIPPI 80000
AMERIKANSKA SAMOA 250000
KENTUCKY 35000
Ohio 150000
KANSAS 51392
MICHIGAN 49167
ALABAMA 50000

Beräkna flera percentiler

I följande exempel visas värdet DamageProperty för samtidigt beräknat med 5, 50 (median) och 95.

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

Resultat

Resultattabellen som visas innehåller bara de första 10 raderna.

Tillstånd percentile_DamageProperty_5 percentile_DamageProperty_50 percentile_DamageProperty_95
ATLANTEN, SÖDRA 0 0 0
FLORIDA 0 0 40000
GEORGIEN 0 0 143333
MISSISSIPPI 0 0 80000
AMERIKANSKA SAMOA 0 0 250000
KENTUCKY 0 0 35000
Ohio 0 2000 150000
KANSAS 0 0 51392
MICHIGAN 0 0 49167
ALABAMA 0 0 50000
... ...

Returnera percentiler som en matris

I stället för att returnera värdena i enskilda kolumner använder du percentiles_array() funktionen för att returnera percentilerna i en enda kolumn av dynamisk matristyp.

Syntax

percentiles_array(Uttryck,percentiler)

Parametrar

Namn Typ Obligatorisk Beskrivning
Uttryck string ✔️ Uttrycket som ska användas för aggregeringsberäkning.
percentiler int, long eller dynamic ✔️ En eller flera kommaavgränsade percentiler eller en dynamisk matris med percentiler. Varje percentil kan vara ett heltal eller ett långt värde.

Returer

Returnerar en uppskattning för de angivna percentilerna i gruppen som en enda kolumn av dynamisk matristyp.

Exempel

Kommaavgränsade percentiler

Flera percentiler kan hämtas som en matris i en enda dynamisk kolumn, i stället för i flera kolumner som med percentiler().

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

Resultat

Resultattabellen visar endast de första 10 raderna.

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

Dynamisk matris med percentiler

Percentiler för percentiles_array kan anges i en dynamisk matris med heltal eller flyttalsnummer. Matrisen måste vara konstant men behöver inte vara literal.

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

Resultat

Resultattabellen visar endast de första 10 raderna.

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

Närmaste rangordnings percentil

P:e percentilen (0 <P<= 100) i en lista över ordnade värden, sorterade i stigande ordning, är det minsta värdet i listan. P-procenten av data är mindre eller lika med P-percentilvärdet (från Wikipedia-artikel om percentiler).

Definiera 0:e percentilerna så att de är den minsta medlemmen i populationen.

Anteckning

Med tanke på beräkningens ungefärliga karaktär kanske det faktiska returnerade värdet inte är medlem i populationen. Närmsta rangdefinition innebär att P=50 inte överensstämmer med medianens interpolativa definition. När du utvärderar betydelsen av denna avvikelse för det specifika programmet bör populationens storlek och ett uppskattningsfel beaktas.

Uppskattningsfel i percentiler

Percentilaggregatet ger ett ungefärligt värde med T-Digest.

Anteckning

  • Gränserna för uppskattningsfelet varierar med värdet för den begärda percentilen. Den bästa noggrannheten är i båda ändar av [0..100]-skalan. Percentilerna 0 och 100 är de exakta lägsta och högsta värdena för fördelningen. Noggrannheten minskar gradvis mot mitten av skalan. Det är sämst vid medianvärdet och är begränsat till 1 %.
  • Felgränsen observeras i rangordningen, inte på värdet. Anta att percentilen(X, 50) returnerade värdet Xm. Uppskattningen garanterar att minst 49 % och högst 51 % av värdena för X är mindre eller lika med Xm. Det finns ingen teoretisk gräns för skillnaden mellan Xm och det faktiska medianvärdet för X.
  • Uppskattningen kan ibland resultera i ett exakt värde, men det finns inga tillförlitliga villkor att definiera när så är fallet.