Partager via


percentile(), centiles() (fonction d’agrégation)

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

La percentile() fonction calcule une estimation pour le centile de rang le plus proche spécifié de la population définie par expr. La précision dépend de la densité de population dans la région du centile.

percentiles() fonctionne de la même façon que percentile(). Toutefois, percentiles() vous pouvez calculer plusieurs valeurs de centile à la fois, ce qui est plus efficace que le calcul de chaque valeur de centile séparément.

Pour calculer des centiles pondérés, consultez centilesw().

Remarque

Cette fonction est utilisée conjointement avec l’opérateur de synthèse.

Syntaxe

percentile(centile expr, )

percentiles(centiles expr, )

En savoir plus sur les conventions de syntaxe.

Paramètres

Nom Type Requise Description
expr string ✔️ Expression à utiliser pour le calcul d’agrégation.
Percentile int ou long ✔️ Constante qui spécifie le centile.
Percentiles int ou long ✔️ Un ou plusieurs centiles séparés par des virgules.

Retours

Retourne une table avec les estimations pour l’expr des centiles spécifiés dans le groupe, chacune dans une colonne distincte.

Remarque

Pour retourner les centiles dans une seule colonne, consultez Les centiles de retour sous forme de tableau.

Exemples

Calculer un centile unique

L’exemple suivant montre la valeur d’être DamageProperty supérieure à 95 % du jeu d’échantillons et inférieure à 5 % du jeu d’échantillons.

StormEvents | summarize percentile(DamageProperty, 95) by State

Sortie

Le tableau des résultats indiqué inclut uniquement les 10 premières lignes.

État percentile_DamageProperty_95
ATLANTIQUE SUD 0
FLORIDE 40000
GEORGIE 143333
MISSISSIPPI 80000
SAMOA AMÉRICAINES 250 000
KENTUCKY 35000
OHIO 150000
KANSAS 51392
MICHIGAN 49167
ALABAMA 50000

Calculer plusieurs centiles

L’exemple suivant montre la valeur de calcul simultanée à l’aide de DamageProperty 5, 50 (médiane) et 95.

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

Sortie

Le tableau des résultats indiqué inclut uniquement les 10 premières lignes.

État percentile_DamageProperty_5 percentile_DamageProperty_50 percentile_DamageProperty_95
ATLANTIQUE SUD 0 0 0
FLORIDE 0 0 40000
GEORGIE 0 0 143333
MISSISSIPPI 0 0 80000
SAMOA AMÉRICAINES 0 0 250 000
KENTUCKY 0 0 35000
OHIO 0 2000 150000
KANSAS 0 0 51392
MICHIGAN 0 0 49167
ALABAMA 0 0 50000
... ...

Retourner des centiles sous forme de tableau

Au lieu de retourner les valeurs dans des colonnes individuelles, utilisez la percentiles_array() fonction pour renvoyer les centiles dans une seule colonne de type de tableau dynamique.

Syntaxe

percentiles_array(centiles expr, )

Paramètres

Nom Type Requise Description
expr string ✔️ Expression à utiliser pour le calcul d’agrégation.
Percentiles int, long ou dynamique ✔️ Un ou plusieurs centiles séparés par des virgules ou un tableau dynamique de centiles. Chaque centile peut être une valeur entière ou longue.

Retours

Retourne une estimation de l’expr des centiles spécifiés dans le groupe sous la forme d’une seule colonne de type de tableau dynamique.

Exemples

Centiles séparés par des virgules

Plusieurs centiles peuvent être obtenus sous forme de tableau dans une colonne dynamique unique, au lieu de plusieurs colonnes comme avec des centiles().

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

Sortie

Le tableau des résultats affiche uniquement les 10 premières lignes.

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
capteur-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
capteur-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
capteur-34 ["0.049980293859462954","0.25094722564949412","0.50914023067384762","0.75571549713447961","0.95176564809278674"] 0.504309494
... ... ...

Tableau dynamique de centiles

Les centiles peuvent percentiles_array être spécifiés dans un tableau dynamique de nombres entiers ou à virgule flottante. Le tableau doit être constant, mais ne doit pas être littéral.

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

Sortie

Le tableau des résultats affiche uniquement les 10 premières lignes.

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
capteur-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
capteur-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
capteur-34 ["0.049980293859462954","0.25094722564949412","0.50914023067384762","0.75571549713447961","0.95176564809278674"] 0.504309494
... ... ...

Centile de rang le plus proche

P-ième centile (0 <P<= 100) d’une liste de valeurs ordonnées, triées dans l’ordre croissant, est la plus petite valeur de la liste. Le pourcentage P des données est inférieur ou égal à la valeur P-ième centile (à partir de l’article Wikipédia sur les centiles).

Définissez les 0-ième centiles pour être le plus petit membre de la population.

Remarque

Étant donné la nature approximative du calcul, la valeur retournée réelle peut ne pas être membre de la population. La définition de rang le plus proche signifie que P=50 n’est pas conforme à la définition interpolative de la médiane. Lors de l’évaluation de l’importance de cette différence pour l’application spécifique, la taille de la population et une erreur d’estimation doivent être prises en compte.

Erreur d’estimation dans les centiles

L’agrégation de centiles fournit une valeur approximative au moyen de T-Digest.

Remarque

  • Les limites de l’erreur d’estimation dépendent de la valeur du centile demandé. La meilleure précision est à la fois à la fin de l’échelle [0..100]. Les centiles 0 et 100 sont les valeurs minimales et maximales exactes de la distribution. La précision diminue progressivement vers le milieu de l’échelle. C’est le pire à la médiane et est limité à 1%.
  • Les limites d’erreur sont observées sur le classement, et non sur la valeur. Supposons que centile (X, 50) a retourné une valeur de Xm. L’estimation garantit qu’au moins 49 % et au plus 51 % des valeurs de X sont inférieures ou égales à Xm. Il n’existe aucune limite théorique sur la différence entre Xm et la valeur médiane réelle de X.
  • L’estimation peut parfois entraîner une valeur précise, mais il n’existe aucune condition fiable à définir quand elle sera le cas.