SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

データサイエンス基礎を高校数学から復習

分布の「山」が割れるとき。混在するクラスタを解き明かす「混合分布」のモデリング

データサイエンス基礎を高校数学から復習しよう 第8回

 データサイエンスという分野は、データ収集や可視化などが身近になったことで、より重要になってきています。システムを使ってデータ分析する際、利用者は最終的な結果のみを求めますが、私たちエンジニアはその途中経過についても正しく評価する必要があります。そのためには、中学や高校で学んだ数学の知識が欠かせません。そこで本連載は、高校までに学ぶ基本的な数学知識を使って、データ分析やデータ表現の基礎的な考え方を紹介します。また、既に学んだ数学的基礎からデータの特徴を見つけるためにデータ表現する方法について紹介したいと思います。

はじめに

 前回までは、「平均・中央・最頻値」といった代表値と、そこから導かれる「偏差値」の仕組みについて、評価をコントロールする論理を学んできました。しかし、現実のデータ分析の現場ではグラフを描いた際に、ラクダの背のように「山が2つに分裂する現象(二峰性)」に直面することがしばしばあります。

 この場合、従来の平均値や偏差値は、実態を表すことが難しくなり、その機能を発揮できなくなってしまいます。そこで今回は、そんな「山が割れた」状況を打開するために、データの「散らばり具合」に光を当ててみましょう。この追加情報を用いることで、混ざり合った集団を鮮やかに解剖する、統計学の本質的なアプローチに迫ります。

2つの峰を持つ「二峰性分布」の兆候をつかむ

 データの全体像を正しく把握するためには、基本統計量の算出だけでなく、分布の形状を可視化することが有効です。

 例えば、ある試験の採点結果において、全体の平均点が意図した通り「50点」と算出されたケースを想定します。数値上は狙い通りの難易度で試験が設計できたように見えますが、横軸に点数、縦軸に人数をとったヒストグラムを描くと、実態は全く異なることが判明する場合があります。

 図1のように。平均点である50点付近に谷ができ、30点付近と80点付近の2箇所にデータの頂点(山)が形成されている状態です。

図1:二峰性の分布図
図1:二峰性の分布図

 このように、1つのデータ群の中に複数のピークが存在する状態を、統計学では「二峰性(Bimodal)分布」、あるいはより広く「多峰性(Multimodal)分布」と呼びます。

  ここで一つの課題が生じます。人間がヒストグラムを見れば一目でわかる「山の分裂」を、グラフを描くことなく、手元の基本統計量の数値だけであらかじめ察知することはできないでしょうか。前述したように、高校数学で習う散らばりの指標を組み合わせることで、データが上げる「二峰性の悲鳴」を数値から直接読み解く方法が存在します。

二峰性分布における代表値の機能不全

 前回の復習となりますが、データが「1つの山(単峰分布)」であれば、平均値・中央値・最頻値の位置関係から集団の性質(例えば、試験の難易度の偏りなど)を正しく解釈することができました。

 しかし、データが2つの山に分かれた「二峰性分布」の場合、これらの代表値は本来の役割を果たせなくなってしまいます。具体的には、以下のようになります。

  • 平均値・中央値:どちらも、データが最も存在しない「谷底」のような場所(例えば、今回の例では50点付近)を指してしまうため、集団の実態を的確に要約できません。
  • 最頻値:2つの山のうち、たまたま人数が1人でも多かった「片方の山の頂点」(例えば、30点または80点)しか拾い上げることができません。これでは、もう一方の集団を完全に無視してしまうことになります。

 このように、集団内に複数の異なる傾向が混在している場合、従来の3つの代表値だけでは、データの真の姿を捉えることが困難になるのです。

 前回の例では、山が左に寄ったケースを30点、右に寄ったケースを70点として解説しました。今回は、2つのコミュニティが混ざり合った「二峰性」の性質をより顕著に、かつ視覚的に分かりやすく示すため、経験者層の山の頂点をさらに引き離してシミュレーションを行います。

二峰性分布における「偏差値」の機能不全

 代表値が実態を表さない状態のまま、全員に対して一律に高校数学で習う図2の偏差値の公式を適用すると、算出される数値はその意味を失ってしまいます。

図2:偏差値の計算式
図2:偏差値の計算式

 ここで、xは個人の得点、μは全体の平均値、σは標準偏差です。

 この数式は、入力されたデータの分布形状がどうであれ、機械的に「それらしい数値」を出力します。

 しかし、今回の例のようにデータの谷底の平均値(μ)を基準にした偏差値には、統計的な妥当性が失われます。例えば、30点付近にいる「初心者層」と、80点付近にいる「経験者層」が、本来存在しない「50点」という谷底の平均値からの距離で評価されてしまうため、算出された偏差値は、彼らの実際の能力や集団内での位置を正確に反映しているとは言えません。

 こうした現象が起きる根本的な原因は、母集団が1つの同質な集団ではなく「性質の異なる2つの集団(クラスタ)が混ざり合っていること」にあります。

 データの本質が分かれている場合に一律の物差しを当てることが、なぜ適切ではないのか。その理由を、次節ではより深く掘り下げていきます。

次のページ
範囲と分散・標準偏差の比較で二峰性を検知する

この記事は参考になりましたか?

データサイエンス基礎を高校数学から復習連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 小林 昌弘(コバヤシ マサヒロ)

< WINGSプロジェクト について> 有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/29429 2026/09/10 08:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー