percentile()、percentiles() (集計関数)
適用対象: ✅Microsoft Fabric✅Azure データ エクスプローラー✅Azure Monitor✅Microsoft Sentinel
percentile()
関数は、expr によって定義された母集団の指定されたnearest-rank パーセンタイルの推定値を計算します。
精度は、パーセンタイル リージョンの人口密度によって異なります。
percentiles()
は、 percentile()
と同様に機能します。 ただし、 percentiles()
では複数のパーセンタイル値を一度に計算できます。これは、各パーセンタイル値を個別に計算するよりも効率的です。
加重百分位数を計算するには、 percentilesw()を参照してください。
Note
この関数は、summarize 演算子と組み合わせて使用します。
構文
percentile(
expr,
percentile)
percentiles(
expr,
percentiles)
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
expr | string |
✔️ | 集計計算に使用する式。 |
percentile | int または long | ✔️ | パーセンタイルを指定する定数。 |
パーセン タイル | int または long | ✔️ | 1 つ以上のコンマ区切り百分位数。 |
返品
グループ内の指定されたパーセンタイルの expr の推定値を含むテーブルを返します。それぞれは個別の列にあります。
Note
1 つの列のパーセンタイルを返すには、「 百分位数を配列として返す」を参照してください。
例
単一パーセンタイルの計算
次の例は、 DamageProperty
の値がサンプル セットの 95% を超え、サンプル セットの 5% 未満であることを示しています。
StormEvents | summarize percentile(DamageProperty, 95) by State
出力
表示される結果テーブルには、最初の 10 行のみが含まれます。
都道府県 | percentile_DamageProperty_95 |
---|---|
ATLANTIC SOUTH | 0 |
FLORIDA | 40000 |
ジョージア | 143333 |
MISSISSIPPI | 80000 |
AMERICAN SAMOA | 250000 |
ケンタッキー | 35000 |
オハイオ | 150000 |
KANSAS | 51392 |
ミシガン | 49167 |
ALABAMA | 50000 |
複数のパーセンタイルを計算する
次の例は、5、50 (中央値) と 95 を使用して同時に計算される DamageProperty
の値を示しています。
StormEvents | summarize percentiles(DamageProperty, 5, 50, 95) by State
出力
表示される結果テーブルには、最初の 10 行のみが含まれます。
都道府県 | percentile_DamageProperty_5 | percentile_DamageProperty_50 | percentile_DamageProperty_95 |
---|---|---|---|
ATLANTIC SOUTH | 0 | 0 | 0 |
FLORIDA | 0 | 0 | 40000 |
ジョージア | 0 | 0 | 143333 |
MISSISSIPPI | 0 | 0 | 80000 |
AMERICAN SAMOA | 0 | 0 | 250000 |
ケンタッキー | 0 | 0 | 35000 |
オハイオ | 0 | 2,000 | 150000 |
KANSAS | 0 | 0 | 51392 |
ミシガン | 0 | 0 | 49167 |
ALABAMA | 0 | 0 | 50000 |
... | ... |
パーセンタイルを配列として返す
個々の列の値を返す代わりに、 percentiles_array()
関数を使用して、動的配列型の単一列のパーセンタイルを返します。
構文
percentiles_array(
expr,
percentiles)
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
expr | string |
✔️ | 集計計算に使用する式。 |
パーセン タイル | int、long、または dynamic | ✔️ | 1 つ以上のコンマ区切り百分位数またはパーセンタイルの動的配列。 各パーセンタイルには、整数または長い値を指定できます。 |
返品
動的配列型の単一列として、グループ内の指定されたパーセンタイルの expr の推定値を返します。
例
コンマ区切りの百分位数
percentiles()と同様に、複数の列ではなく、1 つの動的列で複数のパーセンタイルを配列として取得できます。
TransformedSensorsData
| summarize percentiles_array(Value, 5, 25, 50, 75, 95), avg(Value) by SensorName
出力
結果テーブルには、最初の 10 行のみが表示されます。
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 |
... | ... | ... |
パーセンタイルの動的配列
percentiles_array
のパーセンタイルは、整数または浮動小数点数の動的配列で指定できます。 配列は、定数にする必要がありますが、リテラルにする必要はありません。
TransformedSensorsData
| summarize percentiles_array(Value, dynamic([5, 25, 50, 75, 95])), avg(Value) by SensorName
出力
結果テーブルには、最初の 10 行のみが表示されます。
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 |
... | ... | ... |
最も近いランクのパーセンタイル
昇順で並べ替えられた順序付けされた値のリストの P 番目のパーセンタイル (0 <P<= 100) は、リスト内の最小の値です。 データの P パーセントが P 番目のパーセンタイル値以下です (パーセンタイルの Wikipedia 記事から)。
0 番目のパーセントを母集団の最小メンバーとして定義します。
Note
計算の近似特性を考えると、実際に返される値は、母集団のメンバーではない可能性があります。 最も近いランクの定義は、P=50 が中央値の補間定義に準拠していないことを意味します。 特定のアプリケーションに対してこの矛盾の有意性を評価する場合は、母集団のサイズと推定誤差を考慮する必要があります。
パーセンタイル単位の推定エラー
パーセンタイル集計では、 T-Digestを使用して概算値を算出できます。
Note
- 推定エラーの限度は、要求されたパーセンタイルの値によって異なります。 最適な精度は、[0..100] のスケールの両端です。 パーセンタイルの 0 と 100 が分布の正確な最小値と最大値です。 精度はスケールの中央に向かって徐々に低下します。 中央値で最低で、1% で最大です。
- エラー限度は、値ではなく、ランクで観測されます。 percentile(X, 50) が Xm の値を返したとします。 推定では、X の値の 49% 以上 51% 以下が Xm 以下になることが保証されます。 Xm と X の実際の中央値との差には、理論上の制限はありません。
- 推定によって正確な値が返される場合もありますが、それがいつなのかを定義するための信頼できる条件はありません。