percentyl(), percentyls() (funkcja agregacji)
Funkcja percentile()
oblicza oszacowanie dla określonego percentyla najbliższej rangi populacji zdefiniowanej przez wyrażenie.
Dokładność zależy od gęstości populacji w regionie percentylu.
percentiles()
działa podobnie do percentile()
. percentiles()
Można jednak obliczyć jednocześnie wiele wartości percentylu, co jest bardziej wydajne niż oddzielne obliczanie każdej wartości percentylu.
Aby obliczyć ważone percentyle, zobacz percentylsw().
Uwaga
Ta funkcja jest używana w połączeniu z operatorem podsumowania.
Składnia
percentile(
Expr,
Percentyl)
percentiles(
Expr,
Percentyle)
Dowiedz się więcej o konwencjach składniowych.
Parametry
Nazwa | Typ | Wymagane | Opis |
---|---|---|---|
Expr | string |
✔️ | Wyrażenie, które ma być używane do obliczania agregacji. |
Percentyl | int lub long | ✔️ | Stała określająca percentyl. |
Percentyle | int lub long | ✔️ | Co najmniej jeden percentyl rozdzielony przecinkami. |
Zwraca
Zwraca tabelę z oszacowaniami dla eksplorowania określonych percentyli w grupie, z których każda jest w oddzielnej kolumnie.
Uwaga
Aby zwrócić percentyle w jednej kolumnie, zobacz Return percentiles as an array (Zwracanie percentyli jako tablicy).
Przykłady
Obliczanie pojedynczego percentylu
W poniższym przykładzie pokazano, że wartość DamageProperty
jest większa niż 95% zestawu próbek i mniejsza niż 5% zestawu próbek.
StormEvents | summarize percentile(DamageProperty, 95) by State
Dane wyjściowe
Wyświetlona tabela wyników zawiera tylko pierwsze 10 wierszy.
Stan | percentile_DamageProperty_95 |
---|---|
POŁUDNIE ATLANTYKU | 0 |
FLORIDA | 40000 |
GRUZJA | 143333 |
MISSISSIPPI | 80000 |
AMERYKAŃSKIE SAMOA | 250000 |
KENTUCKY | 35000 |
OHIO | 150000 |
KANSAS | 51392 |
MICHIGAN | 49167 |
ALABAMA | 50000 |
Obliczanie wielu percentyli
W poniższym przykładzie pokazano wartość równocześnie obliczoną DamageProperty
przy użyciu wartości 5, 50 (mediana) i 95.
StormEvents | summarize percentiles(DamageProperty, 5, 50, 95) by State
Dane wyjściowe
Wyświetlona tabela wyników zawiera tylko pierwsze 10 wierszy.
Stan | percentile_DamageProperty_5 | percentile_DamageProperty_50 | percentile_DamageProperty_95 |
---|---|---|---|
POŁUDNIE ATLANTYKU | 0 | 0 | 0 |
FLORIDA | 0 | 0 | 40000 |
GRUZJA | 0 | 0 | 143333 |
MISSISSIPPI | 0 | 0 | 80000 |
AMERYKAŃSKIE SAMOA | 0 | 0 | 250000 |
KENTUCKY | 0 | 0 | 35000 |
OHIO | 0 | 2000 | 150000 |
KANSAS | 0 | 0 | 51392 |
MICHIGAN | 0 | 0 | 49167 |
ALABAMA | 0 | 0 | 50000 |
... | ... |
Zwracanie percentylu jako tablicy
Zamiast zwracać wartości w poszczególnych kolumnach, użyj percentiles_array()
funkcji , aby zwrócić percentyle w jednej kolumnie typu tablicy dynamicznej.
Składnia
percentiles_array(
Expr,
Percentyle)
Parametry
Nazwa | Typ | Wymagane | Opis |
---|---|---|---|
Expr | string |
✔️ | Wyrażenie, które ma być używane do obliczania agregacji. |
Percentyle | int, long lub dynamic | ✔️ | Co najmniej jeden percentyl rozdzielony przecinkami lub tablica dynamiczna percentyli. Każdy percentyl może być liczbą całkowitą lub wartością długą. |
Zwraca
Zwraca oszacowanie dla eksplorowania określonych percentyli w grupie jako pojedyncza kolumna typu tablicy dynamicznej.
Przykłady
Percentyle rozdzielone przecinkami
Wiele percentyli można uzyskać jako tablicę w jednej kolumnie dynamicznej, a nie w wielu kolumnach, tak jak w przypadku percentylu().
TransformedSensorsData
| summarize percentiles_array(Value, 5, 25, 50, 75, 95), avg(Value) by SensorName
Dane wyjściowe
Tabela wyników zawiera tylko pierwsze 10 wierszy.
Nazwa czujnika | 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 |
... | ... | ... |
Tablica dynamiczna percentylu
Percentyle dla percentiles_array
elementu można określić w dynamicznej tablicy liczb całkowitych lub zmiennoprzecinkowych. Tablica musi być stała, ale nie musi być literałem.
TransformedSensorsData
| summarize percentiles_array(Value, dynamic([5, 25, 50, 75, 95])), avg(Value) by SensorName
Dane wyjściowe
Tabela wyników zawiera tylko pierwsze 10 wierszy.
Nazwa czujnika | 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 |
... | ... | ... |
Percentyl najbliższej rangi
Th percentyl (0 <P<= 100) listy uporządkowanych wartości posortowanych w kolejności rosnącej jest najmniejszą wartością na liście. Procent P danych jest mniejszy lub równy wartości percentylu P-th (z artykułu w Wikipedii na percentylach).
Zdefiniuj 0. percentyl, aby być najmniejszym członkiem populacji.
Uwaga
Biorąc pod uwagę przybliżony charakter obliczenia, rzeczywista zwrócona wartość może nie być członkiem populacji. Definicja najbliższej rangi oznacza, że P=50 nie jest zgodna z definicją interpolacyjną mediany. Podczas oceny istotności tej rozbieżności dla określonej aplikacji należy wziąć pod uwagę rozmiar populacji i błąd szacowania .
Błąd szacowania w percentylach
Agregacja percentylów zapewnia przybliżoną wartość przy użyciu T-Digest.
Uwaga
- Granice błędu szacowania różnią się w zależności od wartości żądanego percentylu. Najlepszą dokładnością jest na obu końcach skali [0,100]. Percentyle 0 i 100 to dokładne minimalne i maksymalne wartości rozkładu. Dokładność stopniowo zmniejsza się w kierunku środka skali. Jest to najgorsze w medianie i jest ograniczona do 1%.
- Ograniczenia błędów są obserwowane w klasyfikacji, a nie na wartości. Załóżmy, że percentyl (X, 50) zwrócił wartość Xm. Oszacowanie gwarantuje, że co najmniej 49% i co najwyżej 51% wartości X są mniejsze lub równe Xm. Nie ma teoretycznego limitu różnicy między Xm a rzeczywistą medianą wartości X.
- Szacowanie może czasami spowodować dokładną wartość, ale nie ma wiarygodnych warunków do zdefiniowania, kiedy będzie to możliwe.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla