データ分析の初歩から応用まで少しずつステップアップしながら学んでいく連載の第9回。グラフを利用して「重要度」を可視化する方法と、それに関連するさまざまな考え方を追いかけます。具体的には円グラフやパレート図、積み上げ棒グラフなどを使いますが、データの取り扱い、結果の見方などに関して、考慮すべき点や見落としがちな点について、ケーススタディーを通して見ていきます。
この連載では、データをさまざまな角度から分析し、その背後にある有益な情報を取り出す方法を学びます。
データの収集方法、データの取り扱い、分析の手法などについての考え方を具体例で説明するとともに、身近に使える表計算ソフト(ExcelやGoogleスプレッドシート)を利用した作成例を紹介します。
必要に応じて、Pythonのプログラムや統計ソフトRなどでの作成例にも触れることにします。
数学などの前提知識は特に問いません。肩の力を抜いてぜひとも気楽に読み進めてください。
筆者紹介: IT系ライターの傍ら、非常勤講師として東大で情報・プログラミング関連の授業を、一橋大でAI関連の授業を担当。書道、絵画を経て、ピアノとバイオリンを独学で始めるも学習曲線は常に平坦。趣味の献血は、最近脈拍が多く99回で一旦中断。さらにリターンライダーを目指し、大型二輪免許を取得。1年かけてコツコツと貯金し、ようやくバイクを購入(またもや金欠)。
読者の皆さんは、割合(比率)を可視化するのに円グラフを使うことは百も承知だと思います。しかし、割合が何らかの目的に対する「重要度」を反映した値であることについては、あまり意識されないことも多いようです。今回は、その「重要度」に焦点を当て、可視化による比較の方法や分析の例、落とし穴などについて見ていきます。
「比率」と「割合」は、同じような意味ですが、「比率」は項目同士の値の比較という意味合いの言葉です。例えば、AとBの比率は1:1.5といった感じの使い方です。一方の「割合」は、全体に対してその項目の占める大きさといった意味合いです。Aの割合は全体の30%、Bの割合は全体の45%といった感じです。
図1の上側は、2020年〜2022年の電動キックボードの事故件数を相手別にグラフ化したものです。このグラフをパッと見て、どのような印象を受けるでしょうか。また、下側の図は、2022年の不正アクセスによる被害の認知件数をパレート図と呼ばれるグラフにしたものです。被害を減らすためにはどこから手を付けていけばいいいでしょうか。
出典となるデータは、上側が警察庁の交通事故分析資料から閲覧できる「令和4年における交通事故の発生状況について」のPDFファイルです。下側は、総務省のページに掲載されている[別紙]のPDFファイルです。
今回は重要度を可視化するというテーマで、幾つかの例を見ていきます。図1に関する問いの答えを探りながら、事故や故障、不良品などを激減させたり、売り上げを伸ばしたりするためには何に注目すればいいかを見てきます。また、重要度が社会情勢や個人の嗜好(しこう)によってどのように変化しているのかを考えます。ぜひ無料会員登録して全文をお読みください。
この記事は、データ分析の初歩から応用まで少しずつステップアップしながら学んでいく連載の第9回です。第7回の棒グラフから、前回の折れ線グラフ、今回の円グラフ/パレート図、ヒストグラム、ヒートマップ、第12回の散布図まで、1つずつ可視化の基礎を学んでいきます。これらグラフの目的と効用などについて、特別予告編で簡単に整理していますので、事前に確認しておくとより理解が深まるでしょう。可視化シリーズを続けて読んでグラフの使い分けをマスターしたい方は、次回を見逃さないために記事冒頭のボタンからメール通知に登録するのがお勧めです。
今回は以下のようなポイントについて、分析の方法や落とし穴を見ていきます。
まずは、小学生の頃から(幼稚園や保育園の頃から?)使い慣れている円グラフからスタートします。棒グラフや折れ線グラフと同様、円グラフもよく使われるにもかかわらず、グラフを作っただけで安心してしまい、どう読み解き、どう活用するかを考えられることが少ないように思われます。戦略や方針を立てる上でとても役に立つツールなので、いま一度その扱い方をしっかりと身に付けておきましょう! では、サンプルファイルの利用についての説明の後、本編に進みましょう。
本稿では、表計算ソフトを使って手を動かしながら学んでいきます。表計算ソフトMicrosoft Excel用の.xlsxファイルをダウンロードできるようにしています。デスクトップ版のExcelが手元にない場合は、Microsoftアカウントがあれば使える無料のMicrosoft 365オンライン、もしくはGoogleアカウントがあれば使える無料のGoogleスプレッドシート(Google Sheets)をお使いください。Microsoft 365オンラインの場合は、.xlsxファイルをOneDriveにアップロードしてから開いてください。Googleスプレッドシートの場合は、.xlsxファイルをGoogleドライブにアップロードしてから開いた上で[ファイル]メニューの[Google スプレッドシートとして保存]を実行してください(Googleスプレッドシート独自の機能を使っている場合は、ファイルを共有して参照できるようにします。その場合は、該当する箇所で使い方を記します)。
答えから先に言うと、図1の上側に示した3D円グラフは、割合を見誤ってしまう危険性のある不適切なグラフです。元データは以下の通りです(図2)。このデータを基に、ウオーミングアップがてら、まずは2Dの円グラフを作成してみましょう。後で2Dグラフと3Dグラフを見比べてみることにします。
サンプルファイルをこちらからダウンロードし、[相手別事故件数]ワークシートを開いて取り組んでみてください。Googleスプレッドシートの場合はこちらのサンプルファイルを開いて、メニューから[ファイル]−[コピーを作成]を選択し、Googleドライブにコピーしてお使いください。
作成されたグラフは以下の通りです。操作の手順については、図3の後に箇条書きで示しておきます。なお、動画の解説も用意してあるので、操作を一つ一つ追いかけたい方はぜひご視聴ください。
手順は以下の通りです。
これだけで円グラフが作成されます。Googleスプレッドシートでは「四輪」や「自転車」などの分類名と割合が自動的に表示されますが、Excelの場合は単に円と凡例が表示されるだけです。そこで、割合を円グラフの中に表示するようにしましょう。
[値]のチェックマークを先にオフにしてしまうと、何も選択されていない状態になるので、せっかく表示されたデータラベルが消えてしまいます。先に[パーセンテージ]のチェックマークをオンにしましょう。また、[ラベルの位置]は、標準では[自動調整]になっていますが、この例では、円グラフの表示が少し小さくなります。[内部外側]にした方が円グラフが大きく表示され、見やすくなります。タイトルを変更したり、データラベルのフォントサイズやフォントの色を変更したりして表示を整えれば完成です。
では、2D円グラフと3D円グラフを見比べてみましょう(図4)。3D円グラフだと、割合が大きく違って見えますね。
「この記事で学べること」で最初に触れたように、3Dグラフにすると割合が違って見えてきます。シンプルな円グラフだとパッとしないので、見栄えをよくしたいというのは人情ですが、3Dグラフにすると、手前にある項目が大きく見えてしまうのです。これは、円グラフに限らず、3Dグラフ全般に見られる罠(わな)なので注意が必要です。そもそも、必然性のない3Dグラフの利用は避けた方がいいでしょう。
もっとも、件数そのものが少ない(全体で74件)ので、図3の割合が電動キックボードの事故に関する特質を表していると断言することはできません。なお、2023年7月に道路交通法が改正され、16歳以上であれば免許なしで電動キックボードを公道で運転できるようになり、時速6km/h以下であれば歩道の走行も可能になりました。自転車や歩行者を巻き込んだ事故の増加が懸念されています(最近、歩道上での事故も大きく報道されていました)。なお、図2のデータは警察庁に報告された件数なので、対四輪の事故以外については報告そのものが上がっていない可能性も大きいと思われます。
円グラフに限らず、どの種類グラフでも、グラフデータの範囲を間違えると、明らかにおかしいグラフ(図5)ができてしまうことがあります。
間違ったグラフができる原因の多くは、グラフデータの範囲を指定していないことがほとんどです。Excelでは、特に範囲を指定しないとアクティブセル領域(アクティブセルを含み、空白のセルで囲まれた範囲)がグラフ化や並べ替えなどの範囲と見なされます。そのため、本来はグラフデータに含めるべきでなかった合計の値などがグラフに含まれてしまうことがあるというわけです。
たいていの人は、グラフが表示された時点で間違いに気づくのですが、重要なのはそこからのリカバリーです。そこで、わざと間違ったグラフを作成し、それを正しいグラフにするための手順を見ていくことにしましょう。以下に箇条書きで操作を示します。
セルA3〜B8のいずれかのセルをクリックすると、セルA3〜B9がアクティブセル領域になり、グラフデータに合計が含まれてしまいます。図5のようなグラフになったのはそのためです。
グラフデータの範囲は以下の操作で修正できます。
Googleスプレッドシートの場合は以下のように操作します。
逆に、アクティブセル領域がどの範囲であるかを理解していると、(元のデータに合計行が含まれていない場合など)いちいち範囲指定をしなくても適切なグラフを作成したり、並べ替えを行ったりすることができます。特に、対象となる範囲が大きい場合には効率のよい操作ができます。「アクティブセル領域」は、Excelを使いこなすのに必要不可欠なキーワードです。
グラフにはさまざまな要素が含まれているので、書式などの設定項目が多岐にわたります。何回かの試行錯誤の後、ようやく目的の設定項目にたどりついたという経験をお持ちの方も多いと思います。確実に設定項目にたどりつくには、グラフの各要素の名前を知っておくのが近道です。図6でそれぞれの要素と名前を確認しておきましょう。
上に示した要素以外にも、棒グラフや折れ線グラフでは縦(数値)軸、横(項目)軸などがあります。マウスポインタを位置付けると、ポップヒントに名前が表示されるので、一度確認しておくといいでしょう。また、それぞれの要素を右クリックすると[グラフタイトルの書式設定]や[グラフエリアの書式設定]などのように、ショートカットメニューにそれぞれの要素の書式設定を行うための項目が表示されます。
なお、データ系列やデータラベルなど、複数の要素から成り立っているものは、クリックして選択すると、それらの要素全てが選択でき、もう一度クリックすると、クリックした要素だけが選択できます。円グラフの1つの扇型の部分や、棒グラフの1つの棒の色を変えたいときにこの操作を使います。
全体に対する個々の項目の割合や比率を表現するためのグラフとしては、円グラフだけでなくパレート図も使えます。パレート図は割合の大きい項目から順に棒グラフを作成し、それらの値の累計を折れ線グラフにしたものです。図7のデータは、不正アクセスが行われた後にどのような被害があったか、届け出などにより2022年に認知された件数をまとめたものです。出典は総務省のページに掲載されている[別紙]のPDFファイルです。ただし、これ以外に表面化していない例もあるかもしれません。
このデータを基に図7のようなパレート図を作ってみましょう。サンプルファイルをこちらからダウンロードし、[不正アクセス]ワークシートを開いて取り組んでみてください。手順は、図7の後に箇条書きで記しておきます。また、これについても動画で解説しているので、操作を一つ一つ追いかけたい方はぜひご視聴ください。
なお、Googleスプレッドシートの場合はこちらのサンプルファイルを開いて、メニューから[ファイル]−[コピーを作成]を選択し、Googleドライブにコピーしてお使いください。
手順は以下の通りです。
これだけでパレート図が作成できます。あとはタイトルを変更するだけです。ただし、パレート図では、セルの内容をグラフタイトルに表示することはできないので、タイトルは自分で入力する必要があります。
一方、Googleスプレッドシートにはパレート図を作成する機能がありません。そこで、件数の降順に並べ替えを行った後、件数の累計を基に割合を累計し、棒グラフと折れ線グラフの複合グラフを作成する必要があります。
Googleスプレッドシートでは、棒グラフの間隔を調整できないので、棒と棒の間にスペースが空いてしまいますが、図7と同様のグラフが作成できます。
さて、作成されたパレート図をどのように分析していけばいいでしょうか。図9のように、第2軸の70%の位置から左に向かって線を引き、折れ線とぶつかったところで線を下に引きます。さらに、第2軸の90%の位置から左に向かって線を引き、折れ線とぶつかったところで線を下に引きます。すると、横軸が3つの部分に分けられます。
3つの部分の左側をクラスAとし、中央をクラスBとします。右側はクラスCです。
クラスAは全体の70%を占める重要な項目と考えられます。つまり、この部分にある項目に対策を施せば、不正アクセスによる被害の70%は(理屈としては)防げるというわけです。
次にクラスBです。さらに、クラスBへの対策を施せば90%の問題が解決することになります。
クラスCは残りの10%です。全体に占める割合が小さいので放置しておいていいかというと、そういうわけでもありません。例えば、件数は少なくても、行政や医療などに関連するWebサイトの改ざんやサーバーデータの消去などがあれば、国民生活への影響は甚大です。件数の多さは必ずしも重要度の大きさであるとは限りませんが、重要度を測る一つの指標にはなります。
この例では「その他」の件数がかなり多く、その部分の実態がつかめないので、ひとまず「その他」は除外してABC分析を行ってもいいかと思われます(もちろん、「その他」にどのような事例があるのかを把握しておく必要はありますが)。ただし、実際に「その他」を除外して、分析を行ってもほぼ同じ結果になります。
このように全体をA、B、Cという3つのクラスに分けて分析していくことをABC分析と呼び、さまざまな分野で活用されています。例えば、機械などの故障の原因についてのABC分析を行えば、対応すべき問題に優先順位を付けるのに役立ちます。また、商品の売れ行きについてのABC分析を行えば、主力商品として推していくべきものはどれか、あるいは、テコ入れすべき商品はどれかといった戦略の策定に役立ちます。
一般に、Amazonなどのネットショッピングでは、取り扱う商品の種類が多いので、クラスCの項目が極めて多くなります。そのように右側に「尾」を引いている部分を「ロングテール」と呼びます。ロングテールの商品は重要度が低いというわけではなく、少量でも幅広く売れ続けるので、安定した売り上げに貢献します(クラスAの主力商品のみに依存していると、その商品の人気が落ちたときの影響が大きくなります)。ただし、取り扱う商品が多い分、いかに効率よく在庫管理を行うかがカギとなります。
上の例では、2022年のデータを基にパレート図を作成し、ABC分析を行いました。しかし、時系列での変化も気になりますね。そこで、不正アクセスによる被害がどのように変化しているかを見てみましょう。実は、出典のPDFファイルには過去5年間のデータが掲載されています(図10)。
このデータを基に、不正アクセスによる被害の認知件数がどのように変化しているかを可視化してみましょう。円グラフでは時系列での変化が可視化できないので、積み上げ縦棒グラフを使います。図11のようなパレート図を作ってみましょう。上で使ったサンプルファイルの[不正アクセス(5年間)]ワークシートを開いて取り組んでみてください。手順は、図11の後に箇条書きで記しておきます。これについても動画で解説しているので、操作の手順を一つ一つ追いかけたい方はぜひご視聴ください。
積み上げ縦棒グラフの作成手順は以下の通りです。
[OK]ボタンをクリックしてダイアログボックスを閉じておいてください。グラフのサイズが小さいと棒の部分が密集して見づらいかもしれないので、グラフをドラッグして見やすいサイズに変更しておきましょう。図11のように各項目を結ぶ細い線(斜めの線)を表示するには以下の操作を行います。
あとはタイトルを指定するだけです。
Googleスプレッドシートでは、以下のように操作します。
メニューバーから[挿入]−[グラフ]を選択し、[グラフの種類]のリストから[積み上げ縦棒グラフ]を選択する
Googleスプレッドシートでは、Excelの区分線に対応する機能がないので、タイトルを設定すれば完成です。
作成されたグラフからどのようなことが読み取れそうでしょうか。年によって件数に波がありますが、その大部分は「インターネットバンキングでの不正送金等」によるものと思われます。詳細については背景となるできごとを精査しないと分かりませんが、不正送金に対応してセキュリティを強化しても、また新たな手口が登場し、またそれに対応し……という「いたちごっこ」になっているのかも知れません。いずれにしても、2019年以降は「インターネットショッピングでの不正購入」と合わせて、お金にかかわる不正行為が大半を占めているようです。
少し細かくなりますが、「知人になりすましての情報発信」「暗号資産交換業者等での不正送信」「インターネットオークションの不正操作」については、2019年以降、実数も割合も減っているようです。これらについてはグラフよりも数値を見た方が分かりやすいかもしれません。背景としては、不正アクセスへの対策強化が考えられます。特に、暗号資産については、2018年1月のコインチェック事件以来、取引所のセキュリティ対策だけでなく、ユーザー側でも二要素認証を徹底するなど、意識の向上があったのではないかと思われます。ちなみに、暗号資産の口座数は2018年から2021年にかけて倍以上に増えています(日本暗号資産取引業協会の統計情報(PDFファイル)による)。とはいえ「対策が強化されたのではないか」というのはあくまで仮説です。さらなる分析を行い、対策などに役立てていくには、実際にどのような出来事があり、どのような対策が取られたのかを詳しく調べる必要があります。逆に、実際に何らかの対策を行った後、トラブルが減少したというグラフが提示できれば、対策の有効性に対する説得力が高まります。
今回は、事故や不正アクセスなどちょっと負の側面のデータばかりだったので、多少は楽しいデータも取り扱ってみましょう(といっても雰囲気を明るくすることが目的ではないのですが)。図12のデータは、総務省の社会生活基本調査のデータから、普段行うスポーツの人数のうち、球技のみを取り出して作成した表です。
この表を基に、それぞれの球技をたしなむ人の割合がどのように変化しているかを可視化してみましょう。ここでは、上で見た積み上げ縦棒グラフではなく、割合の変化だけを見るために100%積み上げ縦棒グラフにします。積み上げ縦棒グラフであれば、球技人口の減少も可視化できますが、全体の人数(N列)も減少しているので、球技人口の減少が強調されすぎるからです(全体に対する球技人口の割合を求めてグラフ化すれば意味のあるものになります)。
サンプルファイルをこちらからダウンロードし、[普段行う球技]ワークシートを開いて取り組んでみてください。手順は図13の後に箇条書きで記しておきます。ただし、積み上げ縦棒グラフとほとんど同じなので、動画での解説は省略します。Googleスプレッドシートの場合はこちらのサンプルファイルを開いて、メニューから[ファイル]−[コピーを作成]を選択し、Googleドライブにコピーしてお使いください。
100%積み上げ縦棒グラフの作成手順は以下の通りです。
Googleスプレッドシートでは、以下のように操作します。
ボウリングが減少しているのは、ボウリングの斜陽化が原因なのかもしれませんが、2021年の減少については新型コロナ禍の影響も大きいのでしょう。野球、バドミントン、ゴルフなど、屋外でできる球技に関しては、2016年から2021年かけては増加の傾向にあります。もちろん、スポーツそのものの人気の変化もあると思われます。バスケットボールやサッカーなどは着実に増加しています。
残念ながら、1970年代の第一次ボウリングブームの終焉(しゅうえん)の後、1990年代にやや盛り上がりを見せたものの、ボウリング場の数は年々減少しています(日本ボウリング協会の報道資料(PDFファイル)による)。にもかかわらず、ボウリングの割合がそれほど小さくない(サッカーより多い!)のを意外に思われる方もおられるかもしれません。実は、社会生活基本調査のデータを見ると、ボウリングの平均行動日数はかなり少なくなっています。つまり、年に数回しかしない人が大多数だというわけです。とすると、「普段行うスポーツ」というのはかなり語弊がありますね。そこで、2021年のデータについて平均行動日数が週1日未満の場合と週1日以上の場合に分けて人数を集計し、どのスポーツが「普段行う」ものなのか「たまに行う」ものなのか、違いを可視化してみたいと思います。データは図14の通りです。
この表を基に、それぞれの球技を行う頻度を比較するグラフを作成してみましょう。図13のような100%積み上げ縦棒グラフを使っても構いませんが、時系列での比較ではないので、100%積み上げ横棒グラフの方がよさそうです。先ほどと同じファイルの[ふだん行う球技(頻度)]ワークシートを開いて取り組んでみてください。手順は図15の後に箇条書きで記しておきます。こちらも手順は積み上げ縦棒グラフや100%積み上げ縦棒グラフとほとんど同じなので、動画での解説は省略します。
100%積み上げ横棒グラフの作成手順は以下の通りです。
Googleスプレッドシートでは、以下のように操作します。
出典のデータには年齢層別の人数も含まれています。バレーボール、バスケットボール、サッカー、テニスは、若年層の人数が多くなっており、週1回以上の割合が大きいのは学校での部活に参加しているためと考えられます。ゴルフに関しては、いわゆるゴルフ中毒に陥り、練習場に行かずにはいられない人が多いのかもしれません。ゴルフの年齢層は全体的にかなり高めです。
なお、図15のような割合(比率)の比較には、ドーナツグラフも使えます。サンプルファイルにはドーナツグラフの作成例も含めてあるので、ぜひご参照ください。ただし、Googleスプレッドシートのドーナツグラフでは複数の輪を同時に表示することができないので、サンプルファイルには含めてありません。
今回は、円グラフを使った割合の可視化と落とし穴の確認から始め、パレート図によるABC分析、積み上げ縦棒グラフによる割合の変化などについて見てきました。割合の大きさが必ずしも重要度の高さであるとは限りませんが、方針の立案などに役立つ、一つの手がかりになることは確かです。
次回は、集団の全体像を見るためのケーススタディーを通して、ヒストグラムや箱ひげ図について、作成方法や設定の変更方法を詳しく見ていきます。次回も、落とし穴や意外に知られていない機能なども紹介します。どうぞお楽しみに!
Copyright© Digital Advantage Corp. All Rights Reserved.