Tableauでの四分位数の算出ロジック

こんにちは!
分析官の望月です!

前回の記事(意外と知らない⁉ 箱ひげ図の描き方 - GRI Blog)は "Tableauで箱ひげ図を作成した際に算出される四分位数とPERCENTILE関数を用いた場合の四分位数の数値が異なる" というところで終わっていましたので、本記事ではその件についてもう少し踏み込んでいきたいと思います。

箱ひげ図を作成した際に算出される四分位数

ググってみると、同様の疑問をもったTableauユーザがすでにTableau側に問合せていました。
https://kb.tableau.com/articles/issue/upper-and-lower-hinge-in-box-plot-different-from-percentile-calculation?lang=us-eg
Tableau側は"Tableau uses Tukey inclusionary hinges(略)"と回答しています。

実は箱ひげ図自体、Tukeyという人が1970年代に考案した比較的歴史が浅い表現方法なのですが、 TableauではこのTukeyの考え方に基づいて箱ひげ図が作られているようです。

Tukeyは自分の著書"Exploratory Data Analysis"の中で第一・第三四分位数のことを「ヒンジ(hinges)」と呼んでいます。 Tukeyのヒンジについてざっくり説明すると、中央値を含む前半のデータの中央値を「下ヒンジ(lower hinge)」、後半のデータの中央値を「上ヒンジ(upper hinge)」としています。

f:id:gri-blog:20210629121224p:plain
 X_{(i)}:下からi番目の数

ご覧の通りn=4k, 4k+1, 4k+2, 4k+3それぞれの場合によって算出方法が若干異なります。
例えばn=14の場合だと、中央値はX(7)とX(8)の平均となります。 中央値を含む前半のデータはX(1),X(2),...,X(7)となるため、その中央値X(4)が下ヒンジとなります。 また、中央値を含む後半のデータはX(8),X(9),...,X(14)となるため、その中央値X(11)が上ヒンジとなるわけです。

PERCENTILE関数を用いた場合の四分位数

こちらもググってみると、下記サイトに"Tableau uses the same formula as Excel's PERCENTILE.INC function"とありました。
https://dash-intel.com/tableau/percentiles_in_tableau.php
※公式サイトではないので悪しからず...
どうやらエクセルのPERCENTILE.INC関数と同様のロジックらしいです。

PERCENTILE.INC関数の計算ロジックはこちらのサイトが分かりやすかったです。
http://kj01.kgu.mydns.jp/fujimoto/tips/qptile.html#Exl

上記サイトを参考に、前回の記事で使用したデータ(n=10)を使ってXの第一四分位数を計算してみます。

ID X
1 1
2 4
3 6
4 9
5 13
6 17
7 20
8 21
9 25
10 50

相対順位は1+0.25(10-1)=3.25となり、 相対順位の整数部は3, 小数部は0.25となるため、 第一四分位数はX(3)+0.25(X(4)-X(3))=6+0.25(9-6)=6.75になります。

まとめ

要はどちらかの方法が正しい・間違っているということではなく、 それぞれ算出の定義が異なるということです。 本記事でご紹介した四分位数の算出方法以外にもさまざまな算出方法が存在します。 気になった方はぜひ調べてみてください!