データサイエンス入門編「データの可視化」

この記事は GMOインターネットグループ Advent Calendar 2024 20日目の記事です。

はじめに

プレゼン資料や新聞、ニュースなど至る所で目にするグラフ。データを整理し、一目で情報を伝えるために欠かせないツールです。しかし、グラフの種類や使い方を意識して選んでいる人はどれくらいいるでしょうか?適切なグラフを用いデータを可視化することで、データの本質を分かりやすく伝えることができます。本記事では、グラフの種類と使い分けを解説するとともに、実際に障害調査でグラフを活用した事例を交えながら、可視化の重要性について掘り下げていきます。

グラフの使い分け

ばらつきを見る

  • ヒストグラム
  • ストリップチャート
  • 箱ひげ図

値を比較する

  • 棒グラフ

割合を見る

  • 円グラフ
  • 積み上げ棒グラフ

時間変化を見る

  • 折れ線グラフ
  • 積み上げ棒グラフ
  • 積み上げ面グラフ

値の関係を見る

  • 散布図
  • バブルチャート
  • 複合グラフ

主なグラフ

ヒストグラム

用途:ばらつきを見る

次のグラフは、総務省の家計調査による「貯蓄現在高 階級別世帯分布(二人以上の世帯)2021年」です。ヒストグラムは棒グラフと似ていますが、棒(ヒストグラムではビンと言います)の幅で横軸の数値の範囲(階級数と言います)を表すことができます。

例えば、100~1000は100刻みですが、1000~2000は200刻みのため、1000~2000のビンは横幅が2倍に伸びています。2000~2500は横幅が5倍です。棒グラフでは見落としがち階級数も、グラフで表現することができます。

https://www.stat.go.jp/data/sav/sokuhou/nen/pdf/2021_yoyaku.pdf

ストリップチャート

用途:ばらつきを見る

次のグラフは、47都道府県の2022年の平均気温です。ストリップチャートは1次元散布図とも言います。データの重なりが多いと解釈が困難なため、少量のデータをコンパクトに表示したい時に使います。

https://www.e-stat.go.jp/

箱ひげ図

用途:ばらつきを見る

昔は数学Ⅰで習うものでしたが、2021年度の学習指導要領から中学2年生の数学で習うようになったようです。ストリップチャートよりシンプルな表現でばらつきが確認できます。

値の大きさではなく値の個数に着目し、昇順に並べ替えたデータに対し、先頭から数えて全体のx%目に位置するデータをxパーセンタイルと呼びます。また、25%ごとのパーセンタイルを四分位数(しぶんいすう)と呼びます。

  • 25パーセンタイルの値:第一四分位数
  • 50パーセンタイルの値:第二四分位数(中央値)
  • 75パーセンタイルの値:第三四分位数

さらに、25~75パーセンタイルの値の範囲を四分位範囲(IQR:Interquartile Range)と呼びます。

そして、第三四分位数からIQR×1.5を上限に最も大きい値を最大値、第一四分位数からIQR×1.5を下限に最も小さい値を最小値、最大値・最小値の範囲外の値を外れ値として表現します。平均値を補記する場合もあります。

https://www.e-stat.go.jp/

棒グラフ

用途:値を比較する

説明不要のおなじみの棒グラフですが、1つ注意点です。棒グラフは原点0を表略することができないものです。原点0を省略した場合、差異を過大に感じさせることに繋がります。テレビや広告などで原点0を省略した棒グラフを時々見かけることがありますが、印象に惑わされないよう注意が必要です。

https://www.e-stat.go.jp/

円グラフ

用途:割合を見る

次のグラフは、2024年の日本におけるデスクトップ版ブラウザシェアです。円グラフは1/2、1/3のように割合が一目で分かりやすいです。

https://gs.statcounter.com/

積み上げ棒グラフ

用途:割合を見る

割合は積み上げ棒グラフでも表現することができます。円グラフより省スペースに記載できる特徴があります。

折れ線グラフ

用途:時間変化を見る

次のグラフは、2023年の札幌市における月別平均気温です。気温のグラフは折れ線グラフがよく使われます。時間変化に棒グラフを使うことも可能ですが、気温は棒グラフに必要な原点0が存在しないため、棒グラフが使えません。

https://www.data.jma.go.jp/stats/etrn/index.php

折れ線グラフですが1つ注意点です。次の左側のグラフは3月から4月に掛けて”急激に減少”と表現されていますが、グラフを縦横に引き延ばすと右側のグラフは変化が緩やかに感じます。折れ線グラフは傾きで増減を表現する手法のため、増減の傾向の把握に留め、値の評価には注意が必要です。

積み上げ棒グラフ

用途:時間変化を見る

次のグラフは、当社のIR資料のうち、ビジネスモデル別の連結売上高です。全体と内訳両方の時間変化を確認することができます。

https://www.gmo-pg.com/news/pdf/20241113_gmo-pg_kessan.pdf

積み上げ面グラフ

用途:時間変化を見る

再び、日本におけるデスクトップ版ブラウザシェアです。割合の時間経過も積み上げ棒グラフで表現できますが、詳細なパーセンテージを示す必要がない場合は、積み上げ面グラフで省スペースに表現が可能です。

散布図

用途:値の関係を見る

47都道府県の年平均気温と最高気温(日最高気温の月平均の最高値)の関係性を表したグラフです。2値が相関していることが一目で分かります。

https://www.e-stat.go.jp/

バブルチャート

用途:値の関係を見る

先ほどの散布図に、最低気温(日最低気温の月平均の最低値)を円の大きさとして追加したものになります。3値を可視化することが可能です。

複合グラフ

用途:値の関係を見る

関連する棒グラフや折れ線グラフなどを1つの図に集約することで、複数の値の関係を表現します。

障害調査でデータを可視化した例

弊社は決済サービスをビジネスとしている会社で、日々オーソリ処理(クレジットカード決済の際に、カード会社に顧客の与信情報を照会して決済の可否を確認する手続き)を行っています。ある日、特定のカード会社起因で、本来オーソリNGにしてはならないカードが数百件レベルでNGと誤判定される障害が発生しました。事態はお客様からの連絡により数日後に知ることになったのですが、今後は我々で予め検知できるように、一定の閾値(NG率)を超えたらアラート通知することにしました。

問題は、アラート通知する閾値をどうするかです。
まず、半年分のオーソリ件数とNG率をデータベースから抽出し、表に整理しました。数値は非公開となるため、下表は次の加工をしています。(実際の表は実数)

  • 障害日(黄色)のNG率をx%とおく。NG率が障害日より高い日をオレンジ色、僅差で低い日を青色、その他は空白で記載
  • オーソリ件数は障害日を「100,000」とした場合の比率を記載

障害日のNG率は確かに高めではあったものの、障害日より高い日や、僅差で低い日もあることから、障害日のNG率が突出して高いとは言えず、NG率のみで閾値を決めることができません。

二次元の表を眺めてても糸口が掴めないため、オーソリ件数とNG率の関係を見るために散布図に変換します。

散布図に変換することで、オーソリ件数が少ない日はNG率にバラツキがありますが、件数が増えるにつれてNG率がある程度収束していくことが一目で分かるようになりました。また、障害日が明らかに外れ値であることも散布図から分かります。

この分析結果を元に、xxx件以上の時にα%以上のNG率(非公開)でアラート通知するように実装しました。

まとめ

データの可視化は、膨大な数値データを直感的に理解しやすくするために重要です。グラフを用いることで、データ間のパターン、傾向、相関関係を迅速に把握でき、意思決定をサポートします。また、視覚化は複雑な情報を簡潔に伝える手段として、他者との効果的なコミュニケーションにも寄与します。さらに、異常値や潜在的な問題を発見する助けにもなり、問題解決や戦略策定において必要不可欠なものです。

ブログの著者欄

鈴木 貴仁

GMOペイメントゲートウェイ株式会社

WEBアプリケーションエンジニア / 部内リードエンジニア。2019年10月GMOペイメントゲートウェイ株式会社に入社。入社後、新規サービスの立ち上げに貢献し、現在は公共事業者に特化した継続払いサービスの開発に従事しています。SpringBootとAWSが好きです。

採用情報

関連記事

KEYWORD

TAG

もっとタグを見る

採用情報

SNS FOLLOW

GMOインターネットグループのSNSをフォローして最新情報をチェック