前回は「確率」の基本的な考え方を扱いました。第2回となる今回は、集めたデータをどうやって「見る」かという話です。データの可視化(グラフ化)の技術と、データから何かを判断するための「仮説検定」という考え方の入り口を紹介していきます。
なぜグラフにするのか
大前提として、「データを持っているだけでは意味がありません」。数字の羅列を眺めているだけでは、そこに潜んでいる情報を読み取るのは大変です。データが持つ情報を読み取るためにグラフを作成する、というのがこの章全体の出発点になります。
グラフ作成の目的は、大きく次の5つに整理できます。
A. 比較:大きいか小さいかを比較したい
B. 変化:増えているか、減っているかを知りたい
C. 構成比:全体の中での割合を知りたい
D. 分布:データの散らばりの度合いを知りたい
E. 相関:データ間に関係がありそうか知りたい
これから紹介するグラフの種類は、基本的にこの5つの目的のどれかに対応しています。「何を知りたいのか」によって、選ぶべきグラフの種類が変わってくる、というのがまず押さえておきたいポイントです(この章の内容は、東京大学 数理・情報教育研究センターの小林亮太先生が公開されている資料をベースに構成されています)。
A. 比較を表すグラフ
棒グラフは、大小関係を比較するもっとも基本的なグラフです。たとえば、都市ごとの「うどん・そばの年間支出金額」を棒グラフにすると、高松市が全国平均の2倍以上を消費している、といった違いが一目でわかります。人口ピラミッド(年齢層ごとの男女別人口を棒グラフで表したもの)のように、時代による構造の変化を比較するのにも使われます。
箱ひげ図は、複数の集団(たとえば大学生と高校生、日本とアメリカなど)の分布の違いを比較するのに便利なグラフです。作り方は次の通りです。
データを小さい順に並び替える
最大値、最小値、中央値、第1四分位数、第3四分位数を計算する
たとえば、研究室の学生7名の統計学の成績が「71点、95点、75点、55点、67点、61点、86点」だったとします。これを小さい順に並べ替えると「55, 61, 67, 71, 75, 86, 95」となり、真ん中の71点が中央値、それより小さい3つのデータ(55, 61, 67)の中央にある61点が第1四分位数、大きい3つのデータ(75, 86, 95)の中央にある86点が第3四分位数になります。中央値は、データを小さい順に並べたときの中央にある値のことで、データが偶数個の場合は中央にある2つのデータの平均を取ります。
これらの値を箱とひげで表現すると、箱の中に半分のデータが収まっていること、ひげの長さから散らばりの大きさがひと目でわかります。第1・第3四分位数から大きく離れた外れ値は、箱ひげ図上で別の点(○など)として示されるのが一般的です。プロ野球投手陣の防御率を球団ごとに比較する例でも、箱ひげ図を使うと「バラつきが少なく安定して良い成績のチーム」と「バラつきが大きいチーム」の違いが一目瞭然になります。
ヒートマップも比較に使えます。地図上のデータや行列のように、2次元に並んだデータの大小関係を、色の濃淡で表現する方法です。数値が大きいほど赤に近く、小さいほど青に近い、といったルールで塗り分けると、データの中でどこの値が大きいのかが直感的にわかります。
B. 変化を表すグラフ
時間の経過にともなう変化を見たいときは、折れ線グラフが定番です。月ごとの平均気温の推移を折れ線グラフにすれば、「8月はそれほど気温が上がらず、9月以降に急に気温が下がる」といった季節ごとの変化のパターンが見えてきます。
長期間のデータを折れ線グラフにする例としては、東京の年間平均気温の推移(1900年〜2020年)があります。年によるバラつきはあるものの、100年間で約3℃上昇している、という長期トレンドを読み取ることができます。COVID-19の東京都の感染者数推移のように、複数の「波(ピーク)」がある変化を追いかける場合にも折れ線グラフは有効です。より詳しくデータの変化のパターンを分析したい場合は、この後のシリーズで扱う回帰分析や、時系列分析といった手法を使うことになります。
C. 構成比を表すグラフ
全体の中での割合(内訳)を見たいときは、円グラフや帯グラフが使われます。日本の発電量の内訳(火力・水力・原子力・新エネルギーなど)を年ごとに円グラフで比較すると、原子力発電の割合が大きく減り、火力発電の割合が大きく増えた、といった構成比の変化がひと目でわかります。
比較したい対象が多い場合には、帯グラフや「積み上げ縦棒グラフ」が便利です。年ごとの発電量の推移を積み上げ縦棒グラフにすると、構成比の変化だけでなく、発電量全体の増減も同時に確認できます。
D. 分布を表すグラフ
データの散らばり具合を見たいときの定番がヒストグラムです。プロ野球選手の体重データをヒストグラムにすると、「体重85〜90kgの選手が多い」「90kg以上の選手は少ない」といった、分布の山や裾の形が見えてきます。
2種類のデータの散らばり具合(2次元の分布)を見たい場合は、ヒートマップも使われます。選手の身長と体重の組み合わせをヒートマップにすると、「身長180cm、体重85kg周辺の選手が多い」といった、2つの変数が重なり合う場所での密集具合を視覚的に把握できます。
E. 相関を表すグラフ
2つの変数の間に関係がありそうかを見たいときは、散布図を使います。プロ野球のチーム成績で「1試合の平均得点」と「勝ち数」の関係を散布図にすると、平均的に多くの得点を取るチームほどシーズンの勝ち数が多い、という右肩上がりの関係が見えてきます。
ここで大事な注意点があります。相関が高いからといって、因果関係があるとは限らない、ということです。得点と勝ち数の相関が高いからといって、「得点さえ多く取ればチームが強くなる」とは限りません。逆に、因果関係が強ければ相関も強くなるはずなので、有力な因果関係の候補を探すために散布図を使うことはできます。「相関≠因果」というのは、データ分析全般でとても大事な心構えです。
3つ以上の変数間の関係をまとめて見たい場合は、散布図行列(すべての変数のペアについて散布図を並べたもの)や、相関行列をヒートマップにしたもの(変数のペアごとの相関係数を色の濃淡で表したもの)が便利です。相関行列のヒートマップを見れば、多数の変数の中から「どの2つの変数の関係が特に強いか」を素早く見つけ出すことができます。
グラフ作成のコツと、グラフがもたらす誤った解釈
グラフは正しく使えば強力な武器になりますが、作り方を誤ると、かえって誤解を招いてしまうこともあります。いくつか注意点を紹介します。
棒の数・順番に注意:棒グラフに並べる棒の数は、少なすぎても(比較対象がなく意味がわからない)、多すぎても(ごちゃごちゃして読み取れない)わかりにくくなります。また、大きい順に並べる、地理的な順番に並べるなど、解釈しやすい順番を意識することも大切です。
ヒストグラムのビン幅に注意:ヒストグラムを作る際の区間の幅(ビン幅)は、太すぎても(大まかすぎて分布の形が見えない)、細すぎても(ノイズが目立ちすぎて全体の形が見えない)、データの散らばり具合がわかりにくくなります。どんなデータにも万能な最適なビン幅があるわけではなく、いくつかのビン幅を試してみることも重要です。
縦軸の基準に注意:意図的にせよそうでないにせよ、グラフの縦軸の始点を0以外の値にすると、実際にはわずかな変化を「劇的な変化」であるかのように見せることができてしまいます。ある予備校の合格者数実績を示すグラフで、縦軸を80から始めていたために「合格者数が年々急増している」ように見えたものの、縦軸を0から描き直すと、実際には81名→83名→86名とそれほど増えていなかった、という例が紹介されていました。グラフを見る際は、縦軸・横軸の数値やグラフの種類(対数表示になっていないかなど)を必ず確認する習慣が大切です。
3Dグラフの見た目に注意:円グラフや棒グラフを3D(立体)表示にすると、遠近感によって実際の割合以上に大きく(あるいは小さく)見えてしまうことがあります。ある予備校の合格者内訳を示す3D円グラフで、実際にはより大きな割合を占めている項目が、遠近感の影響で小さく見えてしまっていた、という例も紹介されていました。正確な比較をしたい場合は、3D表示は避けたほうが無難です。
ビッグデータや「つながり」の可視化
データの量が膨大(長期間・高頻度・多種類)になると、そのままではグラフにしても人間の目には複雑すぎて読み取れなくなることがあります。そうした場合は、データを「平均する」ことで見やすくする、という工夫がよく使われます。東京の1900年〜2020年の月別平均気温をそのまま折れ線グラフにすると複雑に変動して見えますが、これを「年ごとの平均」「月ごとの平均」に集約してグラフにすると、長期的な気温上昇のトレンドや、季節ごとの気温変化のパターンが、それぞれくっきりと見えるようになります。
もう一つ、人や物の「つながり」を表現したいときに使われるのが、丸(頂点)と線(枝)で構成される「グラフ(ネットワーク)」です。航空機の国内線・国際線ネットワークを、空港を丸、直行便を線で結んだグラフとして可視化すると、路線数の多い空港(ハブ空港)が視覚的に浮かび上がってきます。SNSのフォロー関係のように、つながりに「向き」がある場合には、矢印を使った「有向グラフ」が使われます。誰の投稿が誰に届くか(拡散するか)を分析する研究などにも、この有向グラフの考え方が応用されています。
仮説検定とは何か ― データから「判断」を下す
最後に、次回の回帰分析にもつながる「仮説検定」という考え方を、さわりだけ紹介しておきます。
仮説検定とは、母集団の平均や分散などのパラメータθについて、「仮説H₀: θ = θ₀」を立て、この仮説のもとでのある推定量T(X₁, X₂, ..., Xₙ)の実現値(実際に観測されたデータから計算した値)をもとに、仮説H₀が正しいか正しくないかの判断を下す手続きのことです。
たとえば、「サイコロを3回振ったところ、3回とも6が出た。このサイコロは公平なサイコロと言えるか?」という問いを考えてみます。もしサイコロが本当に公平(どの目も1/6の確率)であれば、3回連続で6が出る確率は (1/6)³ = 1/216 と、かなり低い確率です。このように「もし仮説(公平なサイコロである)が正しいとしたら、今回観測されたデータは、めったに起こらないくらい珍しい結果だ」と判断できる場合、「その仮説はおそらく誤りだろう」と結論づけるのが仮説検定の基本的な考え方です。実際に判定を下す際には、「有意水準」と呼ばれる基準(たとえば0.01=1%)を先に決めておき、観測データが起こる確率がその基準を下回るかどうかで、仮説を棄却するかどうかを判断します。
同様の考え方は、新薬の効果を確かめる場面にも応用できます。「開発中の降圧剤の新薬をグループAに、偽薬(小麦粉)をグループBに3ヶ月間投与したところ、グループAの平均血圧がグループBより5mmHg低かった。この新薬には効果があると言えるか?」という問いも、仮説検定の枠組みで扱うことができます。「新薬に効果がない(グループ間に差がない)」という仮説を立て、実際に観測された5mmHgという差が、単なる偶然のバラつきで説明できる範囲なのか、それとも偶然とは考えにくいほど大きな差なのかを、確率的に判定するわけです。
仮説検定は、正しく使うと「データに基づいた客観的な判断」ができる強力な道具ですが、有意水準の設定の仕方や、サンプル数の影響など、正しく理解しておくべき注意点も多い分野です。ここでは「データから何かを判断するときには、こうした確率的な裏付けの取り方がある」ということを、まずは頭の片隅に置いておいていただければと思います。
まとめ
今回は、データを「見る」ための技術として、比較・変化・構成比・分布・相関という5つの目的別にグラフの使い分けを整理し、グラフ作成時の落とし穴や、ビッグデータ・ネットワークの可視化についても紹介しました。そして最後に、集めたデータから判断を下すための「仮説検定」という考え方の入り口にも触れました。
「同じデータでも、グラフの描き方次第で見える景色がまったく変わってしまう」というのは、あらためて振り返ってみるととても重要な気づきです。データを正しく読み取る力と同じくらい、データを正しく(誤解を招かないように)見せる力も、データサイエンスに関わるうえで欠かせないスキルなのだと感じます。
次回は、いよいよデータから「法則」や「構造」を取り出す技術として、回帰分析・主成分分析・圧縮センシングという3つの手法を紹介していきます。