可視化のためのデータ加工
前のレッスンでは「何を、何と比べて見せるか」という可視化の方向性を決めました。しかし、方向性が決まっても、手元のデータをそのままグラフに流し込むと、うまく意味が伝わらないことがあります。データが多すぎて点が重なり合ってしまったり、細かい変動に埋もれて本当に見たい傾向が見えなくなったりするためです。このページでは、サンプリングやアンサンブル平均によるデータ量の削減と、統計量を使った特徴の強調という、可視化の前段階で行う2つのデータ加工を扱います。
「グラフを描く前のひと手間」を知っているかどうかで、伝わる可視化になるかが大きく変わります。
1. データが多すぎるとグラフはかえって読めなくなる
分析の現場では、可視化に使えるデータの量が数万件、数百万件という規模になることも珍しくありません。しかし、データが多ければ多いほど良いグラフになるとは限りません。むしろ点や線が多すぎると、グラフ全体が真っ黒に塗りつぶされたように見えてしまい、伝えたい傾向がかえって埋もれてしまいます。
たとえば、1年365日分の1分ごとのアクセスログ(52万件以上)を、そのまま折れ線グラフにしたとします。線が細かく振動しすぎて、画面はギザギザのノイズだらけになり、「アクセスが増えているのか減っているのか」という大きな傾向すら読み取れません。こうした場合には、可視化に入る前にデータ量を意図的に適量まで減らす加工が必要になります。
- 数十万件の顧客を1つの散布図に全部プロットしたら、点が重なりすぎて真っ黒な塊にしか見えない
- 秒単位のセンサーデータをそのまま折れ線グラフにしたら、細かい振動で全体の傾向が見えない
- 全商品5,000点を1本の棒グラフに並べたら、ラベルが読めずどれがどれか分からない
「データは多いほど正確」って思いがちだけど、可視化に関しては話が別なんだよね。人間の目で見て意味が伝わる「適量」まで、うまく減らしてあげる工夫が必要なの。
2. サンプリングとアンサンブル平均でデータ量を適量に減らす
データ量を適量に減らす代表的な方法のひとつがサンプリング※1です。全件を使うのではなく、一定のルールにもとづいて一部だけを抽出し、その抽出データで全体の傾向を代表させる方法です。たとえば52万件のアクセスログから「1時間ごとの代表値」だけを1万件弱に間引いて折れ線グラフにすれば、全体の傾向をぐっと見やすくできます。
もうひとつの方法がアンサンブル平均※2です。これは、一定のまとまり(時間帯、グループなど)ごとにデータを平均してから可視化する方法です。サンプリングが「一部を抜き出す」のに対し、アンサンブル平均は「まとまりごとに集約してから代表値にする」という違いがあります。1分ごとのアクセス数をそのまま使うのではなく、1時間ごとの平均アクセス数を計算してから折れ線グラフにすれば、細かいノイズが均されて、日内の大きな波(朝は少なく昼と夜に多い、など)が見えやすくなります。
- 1分ごとの株価データを、1日の終値(サンプリング)だけ抜き出して長期の推移を折れ線グラフにする
- 数百万件のPOSデータを、店舗×曜日ごとの平均購入額(アンサンブル平均)に集約してヒートマップにする
- 10万人の顧客アンケートから、無作為に1,000人を抽出(サンプリング)して分布のイメージをつかむ
サンプリングは「一部を抜き出して全体を代表させる」、アンサンブル平均は「まとまりごとに平均して集約する」加工です。どちらも、可視化する前にデータ量を人間が読み取れる適量まで減らすための手段だと理解しておきましょう。
サンプリングを行う際には、抜き出し方にも注意が必要です。単純に先頭から一定件数を抜き出すような方法では、特定の時間帯や属性に偏ったデータばかりを見てしまう危険があります。全体からまんべんなく無作為に抽出する、あるいは属性ごとの比率を保ったまま抽出する(層別サンプリング)といった工夫をすることで、可視化に使うサンプルが全体の傾向を正しく代表できるようにする必要があります。
サンプリングは「間引く」、アンサンブル平均は「まとめて均す」ってイメージすると区別しやすいよ。どっちも目的は同じで、「人間の目で見て分かる量」までデータを減らすことなんだよね。
3. 統計量を使って「読み取りたい特徴」を効果的に可視化する
データ量を減らす加工とあわせて重要なのが、統計量※3を使ったデータ加工です。これは量を減らすというより、生データの背後にある特徴を数値として取り出し、その数値をグラフ化することで、読み取りたいポイントを効果的に伝える工夫です。
たとえば、店舗ごとの日々の売上を生データのままプロットすると、日による変動(ノイズ)が大きくて、店舗間の実力差が見えにくいことがあります。ここで移動平均※4という統計量を使って傾向線を重ねて描けば、短期的な変動をならしたトレンドが浮かび上がります。また、単純な平均値だけでなく「標準偏差」を使ってばらつきの大きさをエラーバーとして加えれば、「平均は同じでも、片方の店舗は日によるブレが大きい」という違いを一目で伝えられます。
生データを「量」で減らすのがサンプリングやアンサンブル平均だとしたら、統計量を使った加工は「質」を変える工夫って感じかな。移動平均やエラーバーを重ねるだけで、グラフの説得力がぐっと上がるよ。
| 読み取りたい特徴 | 使う統計量の例 | 可視化への活かし方 |
|---|---|---|
| 大きな傾向(トレンド) | 移動平均 | ノイズの多い折れ線に、平滑化した傾向線を重ねる |
| ばらつきの大きさ | 標準偏差・分散 | 棒グラフや折れ線にエラーバー(誤差範囲)を付ける |
| 代表的な水準 | 平均値・中央値 | 個々の点ではなく、グループの代表値を棒グラフで比較する |
| 分布の偏り | 四分位数(箱ひげ図の要素) | 個々の値ではなく、分布の広がりや外れ値を箱ひげ図で示す |
- 日々の売上の生データに加え、7日間移動平均の線を重ねて「短期的な波」と「大きなトレンド」を両方示す
- 複数店舗の平均来店客数を棒グラフにし、標準偏差をエラーバーとして加え、店舗ごとの安定性の違いを見せる
- 部門ごとの残業時間を箱ひげ図にして、平均だけでなく分布の広がりや外れ値の有無を伝える
「読み取りたい特徴を効果的に可視化するために、統計量を使ってデータを加工する」というのは、生データをそのまま出すのではなく、移動平均・標準偏差・代表値・四分位数などの統計量に変換してからグラフに落とし込む、という考え方です。「何を伝えたいか」から逆算して、必要な統計量を選びましょう。
4. データ量の削減と統計量による加工は組み合わせて使う
ここまで、データ量を減らす加工(サンプリング・アンサンブル平均)と、統計量による加工を別々に見てきましたが、実務ではこの2つを組み合わせて使うことが一般的です。まず粗すぎるデータをアンサンブル平均で適量まで集約し、そのうえで移動平均や標準偏差といった統計量を重ねて、見せたい特徴をさらに際立たせる、という2段階の加工です。
たとえば、数百万件の店舗別・時間帯別の来店データがあったとします。まず店舗×曜日ごとにアンサンブル平均をとってデータ量を適量まで減らし、そのうえで各曜日の平均値に標準偏差のエラーバーを添えることで、「どの曜日が混みやすいか(代表値)」と「その曜日の混み具合はどれくらい安定しているか(ばらつき)」の両方を1枚のグラフで伝えられます。データ加工は一度で終わらせず、目的に応じて複数の技法を重ねる視点を持ちましょう。
データ量の削減と統計量による加工は、どちらか一方を選ぶものではなく、組み合わせて使う技術です。「量を減らす」→「質を際立たせる」という2段階の流れを意識すると、伝わる可視化に近づきます。
まとめ
このページでは、可視化に入る前のデータ加工について2つの技術を見てきました。最後に振り返っておきましょう。
- サンプリングやアンサンブル平均によるデータ量の削減 ― 全件をそのまま使わず、抽出や集約によって人間が読み取れる適量までデータ量を減らす
- 統計量を使ったデータ加工 ― 移動平均・標準偏差・代表値・四分位数などの統計量に変換し、読み取りたい特徴を効果的に可視化する
次のレッスンでは、いよいよ具体的なグラフの種類に踏み込みます。棒グラフ、折れ線グラフ、円グラフなど、基本的なチャートをどう使い分けるか、そしてグラフ表現の注意点を見ていきましょう。