データの平均値や中央値を把握するは分析の基本
データ分析で最も多い依頼は、データの平均や中央値・頻出値、データの偏りがどれくらいあるかの把握です。
ユーザー別の売上平均や中央値、上位75%や25%がどれくらいなのかの四分位数(しぶんいすう)や、最も頻出している値はどれなのか?こういった「データの把握」が最も分析依頼としてよくあるパターンになります。
事業戦略や、事業企画、知的労働に携わる人の全てにおすすめできる名著”ISSUEからはじめよ”でも、基本的な分析は構成・比較・変化のどれかしかないとも言われており、あるデータとデータの平均値・中央値などの構成や、競合サービスとの比較、また平均値・中央値・四分位数が変化したのか?など様々な切り口で分析することができます。
どんな分析からはじめれば良いか分からない方は、データの平均値・中央値を抽出し、同じ条件で比較してみたり、年月単位の変化を見てみたり、構成の差を調べてみたりするとよいのではないでしょうか。
SQLで平均値・中央値を出す方法
今回はPrestoを使い平均値、中央値、四分位数のクエリの書き方を紹介していきます。
平均値の出し方
平均を出すためには対象のカラムに対してavg()
関数を使うことで計算することができます。これは他のSQL言語でも同じパターンが多いため覚えやすいですね。
select avg(column) from table
中央値の出し方
中央値は一般的にはmedian関数を利用することが多いですが、Prestoではapprox_percentile
関数を利用します。
select approx_percentile(column, 0.5) as median from table
approx_percentileは、指定されたパーセンテージにおけるおおよそのパーセンタイルを返す関数です。パーセンテージの値は0から1の間で指定することができ、0.5はちょうど真ん中にあたるので中央値になります。これを使って approx_percentile(column, 0.25)
で第一四分位数、approx_percentile(column, 0.75)
で第三四分位数を表すことができます。
ちなみに四分位数とは、データを小さい順に並べて4等分したときの区切り値のことです。データの最小値から最大値までの範囲を4分割したと思えば分かりやすいです。上位25%がどれくらいの数字なのかや、上位75%がどれくらいなのかを四分位数を使うことで適切に把握できます。
平均値や中央値を使って、データを比較する
クエリの書き方が分かったところで、具体的にどのような分析をすべきなのか?を紹介していきます。先程構成・比較・変化のどれかのパターンで分析ができると書きましたので、例として性別・年代別の売上を比較するデータを考えてみましょう。
一例で購入金額と性別・年代が入っているテーブルを想定してみました。Chat GPTでサンプルデータを作成していますので、実際のデータとは異なります。
購入金額 | 性別 | 年代 |
---|---|---|
11039 | 女 | 30代 |
18141 | 女 | 20代 |
19461 | 男 | 20代 |
18383 | 女 | 20代 |
24514 | 女 | 30代 |
7892 | 男 | 20代 |
9050 | 女 | 20代 |
19474 | 女 | 40代 |
22423 | 女 | 30代 |
8931 | 女 | 20代 |
12915 | 男 | 20代 |
24641 | 男 | 30代 |
15655 | 男 | 30代 |
25204 | 男 | 40代 |
21763 | 女 | 30代 |
25263 | 男 | 40代 |
13399 | 男 | 20代 |
29233 | 女 | 30代 |
26186 | 女 | 20代 |
14381 | 男 | 20代 |
これらをavg()関数とapprox_percentile()関数を使って平均値と中央値を性別・年代ごとに出してみます。
性別 | 年代 | 平均値 | 中央値 |
---|---|---|---|
女 | 20代 | 16138.2 | 18141.0 |
女 | 30代 | 21794.4 | 22423.0 |
女 | 40代 | 19474.0 | 19474.0 |
男 | 20代 | 13609.6 | 13399.0 |
男 | 30代 | 20148.0 | 20148.0 |
男 | 40代 | 25233.5 | 25233.5 |
このように対象を比較することで、どのような特徴があるのかがわかりやすくなります。例えば男女で40代の購入金額に差があり、男性の方が購入金額が大きいことなどが分かります。
平均値や中央値を出すときは、同一条件で他のものと比較することでそのデータがどういう意味を持つのか?がわかるので、比較してみましょう。
ぜひ平均値や中央値、四分位数の出し方を覚えて分析に活用してみてくださいね。