最終更新
リンドくん
先生、前回は平均値について学びましたけど、データを見るときって平均だけで十分なんですか?
たなべ
鋭い質問だね!実は平均だけではデータの本当の姿は見えないんだ。
たとえば、クラスのテストの平均点が同じ70点でも、みんな同じくらいの点数なのか、それとも0点と100点が混在しているのかでは、全然違うよね。
リンドくん
あ、確かに!同じ平均でも全然意味が違ってきますね。
たなべ
そう!そこで登場するのが分散と標準偏差なんだ。
これらを使えば、データがどれくらいバラついているかを数値で表現できるようになるよ。
データ分析を始めたばかりの方にとって、「分散」や「標準偏差」という言葉は少し難しく感じるかもしれません。
しかし、これらはデータの特徴を理解する上で欠かせない基本統計量なのです。
前回の記事では平均値について学びましたが、平均値だけではデータの全体像を把握することはできません。
たとえば、2つのクラスのテスト結果の平均点がどちらも70点だったとしても、片方のクラスは全員が65点から75点の間に収まっているのに対し、もう片方のクラスは0点から100点まで大きくバラついているかもしれません。
このようなデータの散らばり具合を数値で表現するのが、分散と標準偏差です。本記事では、これらの概念を初心者の方でも理解できるよう、身近な例を使いながら丁寧に解説していきます。
HackATAは、IT技術を習得する人のために広く開かれたオンラインコミュニティです。 現在、無料コミュニティとして開放していますので、ご気軽に参加してください。
✓ 再立ち上げ
✓ コミュニティの方向性について意見募集中
リンドくん
「データの散らばり」って、具体的にどういうことなんですか?
たなべ
たとえば、通勤時間を考えてみよう。
Aさんは毎日30分ちょうど、Bさんは20分のときも40分のときもある。どちらも平均は30分だけど、安定性は全然違うよね?
データの散らばりとは、データがどれくらいバラついているかを示す指標です。これを理解することで、平均値だけでは見えなかったデータの特徴が明らかになります。
平均値は確かに重要な指標ですが、それだけでは不十分な場合が多くあります。以下のような例を考えてみましょう。
例① 学生のテスト成績
どちらのクラスも平均点は同じ70点ですが、クラスAは生徒の理解度が均一である一方、クラスBは理解度に大きな差があることがわかります。このような違いは、平均値だけでは判断できません。
例② 気温のデータ
平均気温が同じでも、実際の住み心地は全く異なります。都市Aは年中過ごしやすい気候ですが、都市Bは季節による寒暖差が激しいことになります。
データの散らばり具合を数値化する代表的な指標が分散と標準偏差です。
これらの指標を使うことで、データの特徴をより正確に把握できるようになります。次のセクションでは、分散について詳しく見ていきましょう。
リンドくん
分散って、どうやって計算するんですか?難しそうで...
たなべ
大丈夫!基本的な考え方はシンプルなんだ。
各データと平均値の差を2乗して、その平均を取るだけだよ。順を追って説明していくね。
分散は、データが平均値からどれくらい離れているかを表す指標です。計算の手順は以下の通りです。
なぜ2乗するのかというと、単純に差を取っただけでは正の値と負の値が打ち消し合ってしまうからです。2乗することで、すべての値を正の数にして、バラつきの大きさを正確に測ることができます。
実際に簡単な例で計算してみましょう。5人の学生のテスト点数が以下の通りだったとします。
データ: 60, 70, 80, 70, 90
ステップ① 平均値を計算
ステップ③ 偏差を2乗する
ステップ④ 2乗した値の平均を取る
このように、分散は104となります。
分散の値が大きいほど、データのバラつきが大きいことを意味します。分散が小さければ、データは平均値の周りに集まっていることになります。
ただし、分散には一つ注意点があります。
それは単位が元のデータの2乗になっていることです。点数のデータであれば「点²」という、ちょっと直感的に理解しにくい単位になってしまいます。
この問題を解決するのが、次に説明する標準偏差なのです。
リンドくん
分散の単位が2乗になるって、確かに使いにくいですね...
たなべ
そうなんだよ。だから実務では標準偏差の方がよく使われるんだ。
標準偏差は分散の平方根を取るから、元のデータと同じ単位になって直感的に理解しやすいんだよ。
標準偏差は、分散の平方根(ルート)を取った値です。
記号では「σ(シグマ)」や「SD(Standard Deviation)」で表されます。
先ほどの例で計算した分散104から標準偏差を求めると、以下のようになります。
これにより、データのバラつきを「約10.2点」という、元のデータと同じ単位で表現できるようになりました。
標準偏差は、データの約68%が平均±1標準偏差の範囲に収まるという特徴があります(正規分布の場合)。
先ほどの例では、平均が74点、標準偏差が約10.2点なので、大部分のデータは以下の範囲に収まることが期待されます。
実際のデータ(60, 70, 80, 70, 90)を見ると、5つ中4つがこの範囲に入っており、おおよその予測が当たっていることがわかります。
標準偏差は、以下のような場面で活用されます。
このように、標準偏差は実社会の様々な場面で使われている重要な指標なのです。
リンドくん
Pythonで計算してみたいです!
たなべ
いいね!PythonにはNumPyという便利なライブラリがあって、簡単に計算できるんだよ。
もちろん、標準ライブラリだけでも計算できるから、両方の方法を見ていこう。
まずは、標準ライブラリのstatisticsモジュールを使った方法を見てみましょう。
実行結果は以下。
データサイエンスでは、NumPyを使うのが一般的です。より高速で、大量のデータも効率的に処理できます。
実行結果は以下。
2つのクラスのテスト結果を比較して、散らばりの違いを確認してみましょう。
実行結果:
このように、平均点はほぼ同じでも、標準偏差を見ることでクラスAは生徒の理解度が均一であり、クラスBは理解度に大きな差があることが数値で確認できます。
リンドくん
先生、NumPyで計算したときとstatisticsモジュールで計算したときで、微妙に値が違うことがあるんですけど...
たなべ
いい気づきだね!それは母集団の分散か標本の分散かで計算方法が少し違うからなんだ。
これは統計学の重要な概念だから、しっかり理解しておこう。
統計学では、以下の2つの概念を区別します。
たとえば、「日本全国の高校生のテスト成績」が母集団だとすると、「ある1校のクラスの成績」は標本になります。
標本分散では、分母がN-1になっています。これは自由度の補正と呼ばれ、標本から母集団の分散を推定する際のバイアスを減らすためです。
NumPyではddof(Delta Degrees of Freedom)パラメータで制御できます。
実行結果:
実際のデータ分析では、標本分散(ddof=1)を使うことが多いです。
なぜなら、私たちが扱うデータのほとんどは母集団全体ではなく、そこから抽出された標本だからです。
ただし、データ量が十分に多い場合は、どちらを使っても結果にほとんど差は出ません。
リンドくん
実際のデータ分析では、どんな風に使うんですか?
たなべ
たとえば、異常値の検出やデータの品質チェックなんかに使えるよ。
実践的な例をいくつか見ていこう!
標準偏差を使って、データの中から異常に大きい値や小さい値を見つけることができます。一般的には、平均±3標準偏差の範囲外のデータを異常値とみなします。
実行結果は以下。
複数のデータソースの品質を標準偏差で比較することができます。
実行結果は以下。
このように、平均値は同じでも標準偏差を見ることで、センサーの品質や安定性を客観的に評価できます。
リンドくん
分散と標準偏差のことが、よく理解できました!平均だけじゃなくて、散らばりも見ることが大事なんですね。
たなべ
その通り!データ分析では平均(代表値)と散らばり(分散・標準偏差)の両方を見ることで、データの本当の姿が見えてくるんだ。
これからデータを見るときは、ぜひ両方をチェックする習慣をつけてみてね。
本記事では、データ分析の基礎となる分散と標準偏差について、初心者の方でも理解できるよう段階的に解説してきました。
重要なポイントをおさらいしましょう。
NumPyを使うことで簡単に計算できるddof=1)を使うことが多いデータサイエンスの道のりは長いですが、こうした基礎をしっかりと身につけることで、より高度な分析手法も理解しやすくなります。