percentile(), percentiles() (sammansättningsfunktion)
Gäller för: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Funktionen percentile()
beräknar en uppskattning för den angivna av populationen som definieras av uttr.
Noggrannheten beror på populationens densitet i percentilens region.
percentiles()
fungerar på samma sätt som percentile()
. Men percentiles()
kan beräkna flera percentilvärden samtidigt, vilket är effektivare än att beräkna varje percentilvärde separat.
Information om hur du beräknar viktade percentiler finns i percentilesw().
Not
Den här funktionen används tillsammans med operatorn summarize.
Syntax
percentile(
,
percentil)
percentiles(
,
percentiler)
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Krävs | Beskrivning |
---|---|---|---|
uttr | 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. |
Returnerar
Returnerar en tabell med uppskattningarna för uttr av de angivna percentilerna i gruppen, var och en i en separat kolumn.
Not
Om du vill returnera percentilerna i en enda kolumn kan du läsa Returnera percentiler som en matris.
Exempel
Beräkna en percentil
I följande exempel visas värdet för DamageProperty
större än 95% av exempeluppsättningen och mindre än 5% i exempeluppsättningen.
StormEvents | summarize percentile(DamageProperty, 95) by State
utdata
Resultattabellen som visas innehåller endast de första 10 raderna.
Stat | 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 för DamageProperty
som samtidigt beräknas med hjälp av 5, 50 (median) och 95.
StormEvents | summarize percentiles(DamageProperty, 5, 50, 95) by State
utdata
Resultattabellen som visas innehåller endast de första 10 raderna.
Stat | 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 funktionen percentiles_array()
för att returnera percentilerna i en enda kolumn av dynamisk matristyp.
Syntax
percentiles_array(
,
percentiler)
Parametrar
Namn | Typ | Krävs | Beskrivning |
---|---|---|---|
uttr | 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. |
Returnerar
Returnerar en uppskattning för uttr av 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
utdata
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 heltals- 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
utdata
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 rangordningsprocentil
P-th percentil (0 <P<= 100) i en lista med ordnade värden, sorterade i stigande ordning, är det minsta värdet i listan. P- procent av data är mindre eller lika med P-e percentilvärdet (från Wikipedia-artikeln om percentiler).
Definiera 0-th percentiler som den minsta medlemmen i populationen.
Not
Med tanke på beräkningens ungefärliga karaktär får det faktiska returnerade värdet inte vara medlem i populationen. Närmsta rangdefinition innebär att P=50 inte överensstämmer med interpolativ definition av medianvärdet. När man 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 hjälp av T-Digest.
Not
- 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 på medianen och är begränsad till 1%.
- Felgränsen observeras i rangordningen, inte på värdet. Anta att percentil(X, 50) returnerade ett värde på 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 X.
- Uppskattningen kan ibland resultera i ett exakt värde, men det finns inga tillförlitliga villkor att definiera när så är fallet.